Zakaria Marrah
Zakaria Marrah

Reputation: 765

Exception to fix javax.mail.AuthenticationFailedException exception

I am learning how to send an email with javamail API, i have created the necessary properties and instructions to send a simple email using SMTP server, and i am using this code :

     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 getpPasswordAuthentication(){
    return new  PasswordAuthentication("[email protected]", "password");
    }


    });
    try{
        Message message=new MimeMessage(session);
        message.setFrom(new InternetAddress("myemail"));    
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recepientemailadresse"));
        message.setSubject("the java mail test");
        message.setText("Guess what brother the java mail is working correctly");
        Transport.send(message);
         JOptionPane.showMessageDialog(rootPane, "message sent");
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(rootPane, e);
         e.printStackTrace();
    }

and i the run time an exception occurred mentioning that :

    javax.mail.AuthenticationFailedException: failed to connect, no password specified?
at javax.mail.Service.connect(Service.java:329)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at transfer.Maitest.jButton1ActionPerformed(Maitest.java:96)
at transfer.Maitest.access$000(Maitest.java:20)
at transfer.Maitest$1.actionPerformed(Maitest.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)

would you tell me what did i miss please ??

Upvotes: 1

Views: 11007

Answers (2)

vikingsteve
vikingsteve

Reputation: 40378

If your email server does not require authentication and you don't want to supply a password (for example, test environment), try this:

props.put("mail.smtp.auth", "false");

Upvotes: 0

Bill Shannon
Bill Shannon

Reputation: 29961

First, read this JavaMail FAQ entry about common mistakes. After correcting them, read this JavaMail FAQ entry that tells you how to connect to Gmail. If it still doesn't work, this JavaMail FAQ entry about debugging will help.

Upvotes: 1

Related Questions