Here’s two examples to show how to use JavaMail API method to send an email via Gmail SMTP server using both TLS and SSL connection.

GMail SMTP details

http://mail.google.com/support/bin/answer.py?hl=en&answer=13287

Outgoing Mail (SMTP) Server
requires TLS or SSL: smtp.gmail.com (use authentication)
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465

1. JavaMail – GMail via TLS

Sending an email via Gmail SMTP server using TLS connection.

package com.mkyong.common;
 
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class JavaMailApp1
{
    public static void main( String[] args )
    {	
    	String host = "smtp.gmail.com";
    	int port = 587;
    	String username = "username";
    	String password = "password";
 
    	Properties props = new Properties();
    	props.put("mail.smtp.auth", "true");
    	props.put("mail.smtp.starttls.enable", "true");
 
	Session session = Session.getInstance(props);
 
    	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 transport = session.getTransport("smtp");
	    transport.connect(host, port, username, password);
 
	    Transport.send(message);
 
	    System.out.println("Done");
 
    	} catch (MessagingException e) {
    	    throw new RuntimeException(e);
    	}
    }
}

2. JavaMail – GMail via SSL

Sending an email via Gmail SMTP server using SSL connection.

package com.mkyong.common;
 
import java.util.Properties;
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;
 
public class JavaMailApp2
{
    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);
    	}
    }
}
This article was posted in Java category.

Related Posts