Wednesday, December 14, 2011

JavaMail using SSL and Gmail


Make sure you have mail.jar. Refer example with TLS (Transport Layer Service, SSL - Secure Sockets Layer - http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/)

/**
 *
 */
package sendEmail;

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;

import org.apache.log4j.Logger;

/**
 * @author glakshmanan
 * Download mail.jar for this program
 */
public class SendMailUsingGmailSSL {

private static final Logger logger = Logger
.getLogger(SendMailUsingGmailSSL.class);

/**
*
*/
public SendMailUsingGmailSSL() {
// TODO Auto-generated constructor stub
}

/**
* @param args
*/
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",
"pwd");
}
});

try {

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("gubs4u@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("mailaddress@hostname.com"));
message.setSubject("Testing Again");
message.setText("SSL Worked Atleast");

Transport.send(message);

logger.info("Mail Successfully Sent");

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

No comments :

// Below script tag for SyntaxHighLighter