JavaMail API – Sending Email Via Gmail SMTP Example

来源:互联网 发布:阿里云 ecs 流量收费 编辑:程序博客网 时间:2024/04/30 02:02

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

To run this example, you need two dependency libraries – javaee.jar and mail.jar, both are bundle in JavaEE SDK.

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

GMail SMTP detail here – http://mail.google.com/support/bin/answer.py?hl=en&answer=13287

1. JavaMail – GMail via TLS

Send an Email via Gmail SMTP server using TLS connection.

Example updated on 19/03/2012
Thanks inputs from Sumeet Kumar Yadav and vihor. The below example is updated to get rid of the previous “javax.mail.AuthenticationFailedException” error. It working perfect now.
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 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. JavaMail – GMail via SSL

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

 



原创粉丝点击