Skip to content

javax.mail.AuthenticationFailedException: failed to connect during Transport.send(Message)

My code to send a mail via gmail was working fine 3 months back. But when I checked it again today, it is failing with below error. My gmail account is not 2 factor authenticated.

Code :

package com.mail;

import java.util.Properties;

import javax.mail.Authenticator;
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 Mailer {
    public static void sendMail(String messageSubject, String messageString)
         Properties props = new Properties();    
         props.put("", ConstantsHolder.MAIL_HOST); 
         props.put("mail.smtp.user", ConstantsHolder.FROM_EMAIL);
         props.put("mail.smtp.socketFactory.port", "465");    
         props.put("mail.smtp.auth", "true");    
         props.put("mail.smtp.port", "465");
         props.put("mail.smtp.debug", "true");
         props.put("mail.smtp.socketFactory.fallback", "false");

         //To use TLS
         props.put("mail.smtp.starttls.enable", "true");
         //get Session   
         Session session = Session.getDefaultInstance(props,    
          new Authenticator() {
          protected PasswordAuthentication getPasswordAuthentication() {    
          return new PasswordAuthentication(ConstantsHolder.FROM_EMAIL,ConstantsHolder.FROM_EMAIL_PASSWD);  
         //compose message    
         try {    
          MimeMessage message = new MimeMessage(session);    
          message.addRecipient(Message.RecipientType.TO,new InternetAddress(ConstantsHolder.TO_EMAIL));    
          //send message  
          System.out.println("message sent successfully");    
         catch (MessagingException e) 
             System.out.println("Failed " + e.getMessage()); 
             throw new RuntimeException(e);

Error is :

Failed failed to connect
Exception in thread "main" java.lang.RuntimeException: javax.mail.AuthenticationFailedException: failed to connect
    at com.mail.Mailer.sendMail(
    at com.mail.MailMain.main(
Caused by: javax.mail.AuthenticationFailedException: failed to connect
    at javax.mail.Service.connect(
    at javax.mail.Service.connect(
    at javax.mail.Service.connect(
    at javax.mail.Transport.send0(
    at javax.mail.Transport.send(
    at com.mail.Mailer.sendMail(
    ... 1 more

Am I doing something wrong here? I have also checked other question, but its related to “failed to connect : no password provided”

=============================================================== Edit : Solution After trying debug mode ON as asked by @Nasten1988, I found the root cause of the issue and was able to proceed. Hence marking @Nasten1988 ‘s answer as the right answer.

Read my answer for the actual issue I had.




Failed to connect: maybe you connection is blocked by firewall, is your software up to date? No password provided: check the requirements from Google, they maybe changed them and check how your password is provided for your mail method. Maybe the debugger can help you. That’s what I would look for.