javax.mail.Authenticator and contains the password authentication information:
Authenticator authenticator = new Authenticator() { private PasswordAuthentication authentication;
{ authentication = new PasswordAuthentication("username", "password"); }
protected PasswordAuthentication getPasswordAuthentication() { return authentication; }};java.util.Properties and javax.mail.Session that will be used to build the message transport. The important differences from JavaMail usage here are the extra auth property and the passing of the authenticator object to the mail session. (Note that all values of the Properties instance are strings — this is required by the class. Booleans, integers, et cetera should be passed as strings to this object.)
Properties props = new Properties();props.put("mail.transport.protocol", "smtp");props.put("mail.smtp.host", "smtp.somewhere.com");props.put("mail.smtp.port", "587");props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, authenticator);Session is prepared, we can send the message as normal. The authentication model is carried within the mail session, so each message can take it in and reuse its information.
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@somewhere.com"));message.addRecipient(RecipientType.TO, new InternetAddress("john@doe.com"));
message.setSubject("Hello world!");message.setContent("Sent via an SMTP server with authentication.", "text/plain");
Transport.send(message);import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMessage.RecipientType;
public class SMTPAuthEmail { private Session session;
public static void main(String[] args) throws MessagingException { new SMTPAuthEmail().send(); }
public SMTPAuthEmail() { Authenticator authenticator = new Authenticator() { private PasswordAuthentication authentication;
{ authentication = new PasswordAuthentication("username", "password"); }
protected PasswordAuthentication getPasswordAuthentication() { return authentication; } };
Properties props = new Properties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", "smtp.somewhere.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true");
session = Session.getDefaultInstance(props, authenticator); }
private void send() throws MessagingException { Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@somewhere.com")); message.addRecipient(RecipientType.TO, new InternetAddress("john@doe.com"));
message.setSubject("Hello world!"); message.setContent("Sent via an SMTP server with authentication.", "text/plain");
Transport.send(message); }}