Wednesday, May 26, 2010

JavaMail API – Sending email via Gmail SMTP example

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

JavaMail – GMail via TLS

Sending an email via Gmail SMTP server using TLS connection.

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);
}
}
}

JavaMail – GMail via SSL

Sending an email via Gmail SMTP server using SSL connection.

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);
}
}
}

No comments:

Post a Comment