Nasza aplikacja internetowa wysyła wiadomość e-mail do każdego użytkownika, który wprowadza swój identyfikator e-mail. Ale w jaki sposób mogę się upewnić, że identyfikator adresu e-mail podany przez użytkownika jest prawidłowy. Co dokładnie robimy, gdy dowolny użytkownik wpisuje identyfikator e-mail, wysyłamy link do jego identyfikatora e-mail, aby aktywować konto. Mam kod do wysyłania e-maili. Ale nie daje mi żadnych błędów, nawet jeśli identyfikator poczty nie istnieje. Czy możesz mi powiedzieć, jak rozwiązać problem? Jeśli identyfikator e-mail nie istnieje, powinien podać błąd.Jak sprawdzić, czy adres e-mail rzeczywiście istnieje, wysyłając wiadomość w języku java
jestem tutaj dołączenie mojego kodu
package csv;
import javax.mail.PasswordAuthentication;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class email {
public void send(String recipeintEmail,
String subject,
String messageText,String[] attachments)
throws MessagingException, AddressException {
/*
It is a good practice to put this in a java.util.Properties
file and encrypt password. Scroll down
to comments below to see
how to use java.util.Properties in JSF context.
*/
String senderEmail = "our email address";
String senderMailPassword = "password";
String gmail = "smtp.gmail.com";
Properties props = System.getProperties();
props.put("mail.smtp.user", senderEmail);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
// Required to avoid security exception.
email.MyAuthenticator authentication =
new email.MyAuthenticator(senderEmail,senderMailPassword);
Session session =
Session.getDefaultInstance(props,authentication);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageText);
// Add message text
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Attachments should reside in your server.
// Example "c:\file.txt" or "/home/user/photo.jpg"
for (int i=0; i < attachments.length; i++) {
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachments[i]);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(attachments [i]);
multipart.addBodyPart(messageBodyPart) ;
}
message.setContent(multipart);
message.setSubject(subject);
message.setFrom(new InternetAddress(senderEmail));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(recipeintEmail));
Transport transport = session.getTransport("smtps");
transport.connect(gmail,465, senderEmail, senderMailPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private class MyAuthenticator extends javax.mail.Authenticator {
String User;
String Password;
public MyAuthenticator (String user, String password) {
User = user;
Password = password;
}
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(User, Password);
}
}
public static void main(String args[]) throws MessagingException
{
// email e=new email();
// String at[]={"c:/COPYRIGHT.txt"};
// e.send("[email protected]", "hello","test" )");
}
}
ok. Dostałem twoją odpowiedź. w naszej aplikacji wysyłamy również powiadomienia do telefonów komórkowych użytkowników. Następnie mogę przejść do podziału segmentów w celu sprawdzenia poprawności zarówno numeru telefonu komórkowego, jak i adresu e-mail. Wygeneruję losowy ciąg znaków, podzielę go na dwie części, jedna zostanie wysłana na telefon komórkowy nie, a druga zostanie wysłana na adres e-mail id. Następnie podczas aktywacji użytkownik musi wprowadzić oba, łącząc je. Czy będzie to dobry sposób na sprawdzenie poprawności identyfikatora mobilnego i e-mailowego? – kanchan
tak. możesz również wygenerować unikatowy identyfikator i zapisać go w tabeli bazy danych pod numerem telefonu komórkowego użytkownika. i wysłać również do użytkownika. Gdy użytkownik wprowadzi swój unikalny identyfikator, dopasuje go do identyfikatora zapisanego w bazie danych. – kandarp