I can authenticated to SMTP by following the google example.
But the problem now is I can't send out the mail. I am getting the following error whenever I try to send out mail.
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 f5sm19578172pav.22
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2114)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1618)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
First I am getting can't connect to local host , thus I added a few lines of code to propery of session like below to OAuth2Authenticator class , still authenicated successfully. But can't send out the mail.
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
I am using the same session object and SMTP transport object which will be returned from OAuth2Authenticator class when I first authenticated successfully.
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(msg.getFrom()));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(msg.getTo()));
message.setSubject(msg.getSubject());
message.setText(msg.getBody());
transport.send(message);
Full Debug Log
DEBUG: setDebug: JavaMail version 1.4.5
DEBUG SMTP: enable SASL
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
220 mx.google.com ESMTP gj1sm1027169pbc.11 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 587
EHLO E6410-PC
250-mx.google.com at your service, [202.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
STARTTLS
220 2.0.0 Ready to start TLS
EHLO E6410-PC
250-mx.google.com at your service, [202.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH XOAUTH2"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Authenticate with SASL
DEBUG SMTP: SASL mechanisms allowed: XOAUTH2
DEBUG SMTP: SASL AUTH command trace suppressed
DEBUG SMTP SASL: Mechanisms: XOAUTH2
DEBUG SMTP SASL: SASL client XOAUTH2
DEBUG SMTP SASL: callback length: 1
DEBUG SMTP SASL: callback 0: javax.security.auth.callback.NameCallback@100ab23
DEBUG SMTP SASL: no response
Successfully authenticated to SMTP.
NOOP
250 2.0.0 OK gj1sm1027169pbc.11 - gsmtp
Is SMTP still connected: true
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: enable SASL
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
220 mx.google.com ESMTP az8sm1466819pab.3 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 587
EHLO E6410-PC
250-mx.google.com at your service, [202.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
STARTTLS
220 2.0.0 Ready to start TLS
EHLO E6410-PC
250-mx.google.com at your service, [202.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH XOAUTH2"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<user@gmail.com>
530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 az8sm1466819pab.3 - gsmtp
DEBUG SMTP: got response code 530, with response: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 az8sm1466819pab.3 - gsmtp
RSET
250 2.1.5 Flushed az8sm1466819pab.3 - gsmtp
DEBUG SMTP: MessagingException while sending
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 az8sm1466819pab.3 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2114)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1618)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
at javax.mail.Transport.send0(Transport.java:195)
Edited: I now called AUTH command explicitly like that .
byte[] response = String.format("user=%s\1auth=Bearer %s\1\1",
emailAddress, accessToken.getToken()).getBytes();
response = BASE64EncoderStream.encode(response);
System.out.println("token check : " + new String(response));
transport.issueCommand("AUTH XOAUTH2 " + new String(response), 235);
but the response still the same.
DEBUG: setDebug: JavaMail version 1.4.5
DEBUG SMTP: enable SASL
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
220 mx.google.com ESMTP kl3sm6965596pbc.15 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 587
EHLO E6410-PC
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
STARTTLS
220 2.0.0 Ready to start TLS
EHLO E6410-PC
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH XOAUTH2"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
Successfully authenticated to SMTP.
token check : abcdefgFuYUBnbWFpbC5jb20BYXV0aD1CZWabcdefgSEVTNlpUVlFTUXZfblZfZ01FaDF6WWtSQ2kzb1d5RElFQ19mb2NmWG5Sam93RUlBYVJRTldfNwEB
AUTH XOAUTH2 abcdefgFuYUBnbWFpbC5jb20BYXV0aD1CZWabcdefgSEVTNlpUVlFTUXZfblZfZ01FaDF6WWtSQ2kzb1d5RElFQ19mb2NmWG5Sam93RUlBYVJRTldfNwEB
235 2.7.0 Accepted
NOOP
250 2.0.0 OK kl3sm6965596pbc.15 - gsmtp
Is SMTP still connected: true
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: enable SASL
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
220 mx.google.com ESMTP vo6sm6969236pbc.8 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 587
EHLO E6410-PC
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
STARTTLS
220 2.0.0 Ready to start TLS
EHLO E6410-PC
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH XOAUTH2"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<user@gmail.com>
530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vo6sm6969236pbc.8 - gsmtp
DEBUG SMTP: got response code 530, with response: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vo6sm6969236pbc.8 - gsmtp
RSET
250 2.1.5 Flushed vo6sm6969236pbc.8 - gsmtp
DEBUG SMTP: MessagingException while sending
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vo6sm6969236pbc.8 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2114)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1618)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
QUIT
221 2.0.0 closing connection vo6sm6969236pbc.8 - gsmtp
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vo6sm6969236pbc.8 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2114)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1618)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
This is an old thread but it took me a very long time to figure this out after going through numerous forums (and none of them had the right answer) so I'll post it if it helps someone. Many of the answers above suggest using password which is incorrect
If you are using the latest google apis with OAuth2 and also using the sample code @ http://code.google.com/p/google-mail-oauth2-tools/downloads/detail?name=oauth2-java-sample-20120904.zip&can=2&q=
and are getting the exception
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required
. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vo6sm6969236pbc.8 - gsmtpHere are the steps to fix the problem
Run python
oauth2.py
exactly as the instruction suggest in the zip download. TheOAuth2
Argument is the oauthtoken you must use in the code.After running the
OAuth2Authenticator.connectToSmtp("smtp.googlemail.com", 587, email, oauthToken, true)
method to get theSMTPTransport
. To send the message:Hi Friend finally i am able to send Message using OAUTH , Posting my OAuth2Authenticator source,
add your password and the line u missed because of which u r getting authentication required exception is :::
in your connectToSmtp(.... , ...); method
AND RESPONSE YOU GET IS ::
You just need to authenticate. Follow this example, it also uses gmail: http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/
Sorry people, answer is here: Javamail api in android using XOauth I tested, it works.
"SMS style login" failure - Secure accounts with 2 step login (via phone SMS) reject sending email via SMTP (both RAW password & OAuth style, fail with a Authentication error). They will let you create the OAuth token but will not send email.
I think so it is asking for authentication of your username.
And then use above session in your code.
I haven't use the code specified in the google link u mentioned but i use java mail api to send email from my gmail account.Use above code for authentication
try adding these to your props config..