来自OpenShift的JavaMail:javax.mail.AuthenticationFailedException:535-5.7.8不接受用户名和密码

时间:2015-10-01 09:48:27

标签: gmail java-8 openshift javamail

我在OpenShift上部署了一个应用程序,我需要从一个Google帐户发送电子邮件。

在本地部署应用程序,它完美运行;但是,当在OpenShift上部署的应用程序尝试相同时,我收到以下授权错误:

  

19:23:16,265 ERROR [stderr](默认任务-2)javax.mail.AuthenticationFailedException:535-5.7.8不接受用户名和密码。了解更多信息   https://support.google.com/mail/answer/14257 wn10sm1673177wjc.46 - gsmtp

     

19:23:16,266错误[stderr](默认任务-2)at com.sun.mail.smtp.SMTPTransport $ Authenticator.authenticate(SMTPTransport.java:843)

其他一切在我的OpenShift部署中完美运行。

这就是我的实现:

    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();
    }

我尝试了以下解决方案在URL中提出的异常跟踪解决方案以及其他SO问题的答案:

  • 在Google设置中允许不太安全的应用启用
  • 尝试使用 user@gmail.com 用户作为发件人
  • 允许从https://accounts.google.com/b/0/DisplayUnlockCaptcha
  • 访问Google帐户
  • Google设置中的两步验证已关闭
  • 等待>尝试之间的10分钟,以允许一些"冷静"不成功的授权之间

0 个答案:

没有答案