Site icon Narayana Tutorial

Gmail SMTP SSL Sending Email Using JavaMail API

Gmail-JavaMail-API

Gmail-JavaMail-API

Gmail SMTP SSL – Sending Email Using JavaMail API

In this post, I am going to sharing Gmail SMTP SSL – Sending Email Using JavaMail API. First up all we need to get the Gmail SMTP server details and then we will write the java program.

GMail SMTP with SSL Settings

To send emails by using GMail  server by using SMTP SSL protocol

SMTP Username: <Your GMail Username>
SMTP Password: <Your GMail Password>
SMTP Host Name: smtp.gmail.com
SMTP Port: 465
SSL Protocol: ON

For more details click on Google GMail SMTP ,POP3 and IMAP and settings

 

Example Program

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.narayanatutorial</groupId>
	<artifactId>JavaMail</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>JavaMail</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>

		<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.7</version>
		</dependency>


		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

 

 

GmailTextMsgSendWithSSL.java

package com.narayanatutorial.gmail;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
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 GmailTextMsgSendWithSSL {

	Properties properties;
	Session session;
	MimeMessage mimeMessage;

	String USERNAME = "XXXXXXX@gmail.com";
	String PASSWORD = "XXXXXX";
	String HOSTNAME = "smtp.gmail.com";
	String SSL_PORT = "465";
	boolean AUTH = true;
	String SERVERTYPE = "smtp";

	public static void main(String args[]) throws MessagingException {
		String EmailSubject = "Subject:Text Subject";
		String EmailBody = "Text Message Body: Hello World";
		String ToAddress = "XXXXXXXX@gmail.com";

		GmailTextMsgSendWithSSL gmailTextMsgSend = new GmailTextMsgSendWithSSL();
		gmailTextMsgSend.sendGmail(EmailSubject, EmailBody, ToAddress);
	}

	public void sendGmail(String EmailSubject, String EmailBody, String ToAddress) {
		try {
			properties = new Properties();
			properties.put("mail.smtp.host", HOSTNAME);

			// SSL_PORT Enabled
			properties.put("mail.smtp.port", SSL_PORT);

			// AUTH Enabled
			properties.put("mail.smtp.auth", AUTH);

			// SSL Enabled
			properties.put("mail.smtp.socketFactory.port", SSL_PORT);
			properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

			// Authenticating
			Authenticator auth = new Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(USERNAME, PASSWORD);
				}
			};

			// creating session
			session = Session.getDefaultInstance(properties, auth);

			// create mimemessage
			mimeMessage = new MimeMessage(session);
			mimeMessage.addRecipient(RecipientType.TO, new InternetAddress(ToAddress));
			mimeMessage.setSubject(EmailSubject);

			// setting text message body
			mimeMessage.setText(EmailBody);

			// sending mail
			Transport.send(mimeMessage);
			System.out.println("Mail Send Successfully");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

Replace XXXXXX with your details and run the program.

You can download complete source code. Click Here