Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaMail Exception javax.mail.AuthenticationFailedException 534-5.7.9 Application-specific password required

I want to send mail using JavaMailAPI

I have done some coding but it is not working throwing Exception:-

Message Sending Failedjavax.mail.AuthenticationFailedException: 534-5.7.9 Application-specific password required.

package com.appreciationcard.service;

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 com.appreciationcard.dao.DAOFactory;
import com.appreciationcard.forms.ComposeForm;

public class MailServiceImpl implements MailService {

public boolean mailsent(ComposeForm composeForm) {
    String to = composeForm.getTo();
    String from = composeForm.getFrom();
    String cc = composeForm.getCc();
    String bcc = composeForm.getBcc();
    String subject = composeForm.getSubject();
    String messages = composeForm.getMessage();
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", true);
    props.put("mail.smtp.port", "587");
    props.put("mail.transport.protocol", "smtp");
    props.put("mail.debug", "true");
    System.out.println("Properties" + props);
    Session session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(
                            "[email protected]", "xxxx");
                }
            });
    try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("[email protected]"));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                to));
        message.setSubject(subject);
        message.setText(messages);
        Transport.send(message);
    } catch (MessagingException mex) {
        System.out.println("Message Sending Failed" + mex);
        mex.printStackTrace();
    } 

}

}

I am getting Exception on server console

Message Sending Failedjavax.mail.AuthenticationFailedException: 534-5.7.9 Application-specific password required.

Learn more at 534 5.7.9 http://support.google.com/accounts/bin/answer.py?answer=185833 o5sm11464195pdr.50 - gsmtp

Will Any one Kindly Help me out to solve this problem.

like image 364
Sudhansu Sekhar Nayak Avatar asked Oct 27 '14 18:10

Sudhansu Sekhar Nayak


1 Answers

Just create an App Password for your account and use that password.

Steps to create password:

Go to your account settings (https://myaccount.google.com/) -->> Security -->> Under signing in to Google -->> App Password -->> Enter your credentials to login to your account -->> Select 'App' and 'Device' -->> Generate.

Copy and paste the password somewhere.

You can use this password instead of your account password.

like image 166
LAKSHAY ARORA Avatar answered Sep 28 '22 14:09

LAKSHAY ARORA