java - javax.mail.AuthenticationFailedException: Error authenticating with server -


i trying send mail through exchange server (office 365) using java mail api. following code:

package com.package;  import java.util.locale; import java.util.properties; import java.util.resourcebundle;  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 javax.mail.internet.mimemessage.recipienttype;  public class mail {      resourcebundle rb = resourcebundle.getbundle("settings", locale.english);      public void sendmail(string body, string subject, string receipients) throws messagingexception ////this used send emails     {          message message = new mimemessage(getsession());          message.addrecipient(recipienttype.to, new internetaddress(receipients));         message.addfrom(new internetaddress[] { new internetaddress(rb.getstring("from")) });          message.setsubject(subject);         message.setcontent(body, "text/plain");          transport.send(message);     }      private session getsession() {         authenticator authenticator = new authenticator();          properties properties = new properties();         system.out.println("submitter : " + authenticator.getpasswordauthentication().getusername());         properties.setproperty("mail.smtp.submitter", authenticator.getpasswordauthentication().getusername());         properties.setproperty("mail.smtp.auth", "true");         properties.setproperty("mail.smtp.starttls.enable","true");         properties.setproperty("mail.smtp.host", "smtp.office365.com");         properties.setproperty("mail.smtp.port", "587");          return session.getinstance(properties, authenticator);     }      private class authenticator extends javax.mail.authenticator {          string username, password;         public authenticator() {             username = rb.getstring("from");             password = rb.getstring("password");             }          protected passwordauthentication getpasswordauthentication() {             return new passwordauthentication(username, password);         }     }      public static void main(string[] args) {         try {             new mail().sendmail("testing mail", "test", "someuser@ymail.com");             system.out.println("mail sent");         } catch (messagingexception e) {             // todo auto-generated catch block             system.out.println("unable send mail");             e.printstacktrace();         }     } } 

when run program, console showing :

>>>>>sending data ehlo hp-win8<<<<<< >>>>>sending data starttls<<<<<< >>>>>sending data ehlo hp-win8<<<<<< >>>>>sending data auth login<<<<<< >>>>>sending data imfzagzhcs5tzw1vbkbzdhjlzwjvlmnvbsi=<<<<<< >>>>>sending data iln1bmlamtk5msi=<<<<<< >>>>>sending data quit<<<<<< unable send mail javax.mail.sendfailedexception: send failure (javax.mail.authenticationfailedexception: error authenticating server)     @ javax.mail.transport.send(transport.java:163)     @ javax.mail.transport.send(transport.java:48)     @ com.streebo.mail.sendmail(mail.java:33)     @ com.streebo.mail.main(mail.java:66) caused by: javax.mail.authenticationfailedexception: error authenticating server     @ org.apache.geronimo.javamail.transport.smtp.smtptransport.protocolconnect(smtptransport.java:402)     @ javax.mail.service.connect(service.java:265)     @ javax.mail.service.connect(service.java:85)     @ javax.mail.service.connect(service.java:70)     @ javax.mail.transport.send(transport.java:94)     ... 3 more 

i have checked mail id , password , correct, still getting exception.

check if have wrong in program, please.

since faced same issue when using test account created gmail.com (provided correct credentials used) 1 possible reason

you might have used email hosted / created gmail / yahoo / hotmail test.

if javax.mail.authenticationfailedexception, try logging in mail account using credentials, gmail asks type captcha. after successful login can use java mail api send mails.

the service providers prevent spammers, testing create account , dont use thing else.


Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -