JavaMail from OpenShift: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted

倾然丶 夕夏残阳落幕 提交于 2019-12-25 03:06:18

问题


I have an application deployed on OpenShift, from which I need to send email to and from a single Google account.

With the application deployed locally, it works perfectly; however, when trying the same with the application deployed on OpenShift, I get the following authorisation error:

19:23:16,265 ERROR [stderr] (default task-2) javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at https://support.google.com/mail/answer/14257 wn10sm1673177wjc.46 - gsmtp

19:23:16,266 ERROR [stderr] (default task-2) at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:843)

Everything else works perfectly in my OpenShift deployment.

This is what my implementation looks like:

    Properties props = new Properties();
    String host = "smtp.gmail.com";
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", myEmail);
    props.put("mail.smtp.password", password);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");

    Session session = Session.getDefaultInstance(props);
    MimeMessage message = new MimeMessage(session);

    try {
        message.setFrom(new InternetAddress(myEmail));
        InternetAddress toAddress = new InternetAddress(myEmail);
        message.addRecipient(Message.RecipientType.TO, toAddress);

        message.setSubject(title);
        message.setText(msg);
        Transport transport = session.getTransport("smtp");
        transport.connect(host, myEmail, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
    catch (AddressException ae) {
        ae.printStackTrace();
    }
    catch (MessagingException me) {
        me.printStackTrace();
    }

I have tried the following solutions proposed in the URL from the exception trace and as answers to other SO questions:

  • Allowed less secure apps is ON in Google settings
  • Tried with both user@gmail.com and user for the sender
  • Allowed access to the Google account from https://accounts.google.com/b/0/DisplayUnlockCaptcha
  • The 2-step verification is OFF in Google settings
  • Waited >10 minutes between tries, to allow for some "cool-off" between unsuccessful authorisations

来源:https://stackoverflow.com/questions/32884451/javamail-from-openshift-javax-mail-authenticationfailedexception-535-5-7-8-use

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!