我们的Web应用程序会向输入其电子邮件ID的每个用户发送电子邮件。但是,我如何确保用户输入的电子邮件ID是有效的呢?实际上,当任何用户输入电子邮件ID时,我们会向他的电子邮件ID发送链接以激活帐户。我有一段发送电子邮件的代码。但是,即使电子邮件ID不存在,它也不会给我任何错误。请问您如何解决这个问题?如果电子邮件ID确实不存在,它应该给出一些错误信息。
以下是我的代码:
以下是我的代码:
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("xyz@gmail.com", "hello","test" )");
}
}