Send Email with Gmail in Java Example
In this example we will see JavaMail
API method to send an email via Gmail SMTP server.
The JavaMail API
provides a platform-independent and protocol-independent framework to build mail and messaging applications. Java Mail API Jar can be included in the maven project by adding the following dependency in pom.xml
.
1. Add dependency in POM
1 2 3 4 5 | < dependency > < groupId >javax.mail</ groupId > < artifactId >mail</ artifactId > < version >1.4</ version > </ dependency > |
Now, In order to send mail we need an smtp server, for this we will make use of gmail SMTP Server. The server details can be looked here.
Gmail SMPT provides 2 methods of authentication for sending mails : TLS (The Transport Layer Security) and SSL (Secure Sockets Layer).
We will use the following configuration of each of the protocols :
1 2 | Port for TLS /STARTTLS : 587 Port for SSL: 465 |
Now, Lets see both the examples one by one.
2. Send mail using TLS Authentication
JavaGmailSendExample.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package com.jcg.example; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * Created by anirudh on 28/10/14. */ public class JavaGmailSendExample { public static void main(String args[]) { final String username = "yourmail@gmail.com" ; final String password = "yourpassword" ; 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( "yourmail@gmail.com" )); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse( "test@gmail.com" )); message.setSubject( "Test JCG Example" ); message.setText( "Hi," + "This is a Test mail for JCG Example!" ); Transport.send(message); System.out.println( "Mail sent succesfully!" ); } catch (MessagingException e) { throw new RuntimeException(e); } } } |
In the above program we used the javax.mail.Message
method to create a message and javax.mail.Transport.send()
method to send it.
Now lets see the same example using SSL authentication:
3. Send Mail using Gmail SSL
JavaGmailSSLExample.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package com.jcg.example; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * Created by anirudh on 28/10/14. */ public class JavaGmailSSLExample { public static void main(String[] args) { final String username = "yourmail@gmail.com" ; final String password = "yourpassword" ; 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( "yourmail@gmail.com" )); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse( "test@gmail.com" )); message.setSubject( "Test JCG Example" ); message.setText( "Hi," + "This is a Test mail for JCG Example!" ); Transport.send(message); System.out.println( "Mail sent succesfully!" ); } catch (MessagingException e) { throw new RuntimeException(e); } } } |
Download Source Code
So, In this example we saw how we can send emails using Gmail and Java Mail API in Java.
You can download the full source code of this example here : JavaGmailSendExample.zip