Monday, January 9, 2017

Java How to send email via Gmail SMTP

In this post, I will show you How to send email via Gmail SMTP, using both TLS and SSL connection.





Download maven dependency.

<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>

1. Send email via Gmail SMTP server using TLS connection

public class SendMailTLS {

 public static void main(String[] args) {

  final String username = "username@gmail.com";
  final String password = "password";

  Properties props = new Properties();
  props.put("mail.smtp.auth", "true");
  props.put("mail.smtp.starttls.enable", "true");
  props.put("mail.smtp.host", "smtp.gmail.com");
  props.put("mail.smtp.port", "587");

  Session session = Session.getInstance(props,
    new javax.mail.Authenticator() {
   protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(username, password);
   }
    });

  try {

   Message message = new MimeMessage(session);
   message.setFrom(new InternetAddress("from-email@gmail.com"));
   message.setRecipients(Message.RecipientType.TO,
    InternetAddress.parse("to-email@gmail.com"));
   message.setSubject("Testing Subject");
   message.setText("Dear Mail Crawler,"
    + "\n\n No spam to my email, please!");

   Transport.send(message);

   System.out.println("Done");

  } catch (MessagingException e) {
   throw new RuntimeException(e);
  }
 }
}

2. Send email via Gmail SMTP server using SSL connection

public class SendMailSSL {
 public static void main(String[] args) {
  Properties props = new Properties();
  props.put("mail.smtp.host", "smtp.gmail.com");
  props.put("mail.smtp.socketFactory.port", "465");
  props.put("mail.smtp.socketFactory.class",
    "javax.net.ssl.SSLSocketFactory");
  props.put("mail.smtp.auth", "true");
  props.put("mail.smtp.port", "465");

  Session session = Session.getDefaultInstance(props,
   new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication("username","password");
    }
   });

  try {

   Message message = new MimeMessage(session);
   message.setFrom(new InternetAddress("from@no-spam.com"));
   message.setRecipients(Message.RecipientType.TO,
     InternetAddress.parse("to@no-spam.com"));
   message.setSubject("Testing Subject");
   message.setText("Dear Mail Crawler," +
     "\n\n No spam to my email, please!");

   Transport.send(message);

   System.out.println("Done");

  } catch (MessagingException e) {
   throw new RuntimeException(e);
  }
 }
}
Good luck!
Share:

0 comments:

Post a Comment

Total Pageviews