我编写了以下bean来验证我的邮件.
public class Mail_Authenticator {
public Session Get_Auth() {
// sets SMTP server properties
ResourceBundle rs_mail = ResourceBundle.getBundle("mail");
final String userName=rs_mail.getString("username");
final String password=rs_mail.getString("password");
Properties properties = new Properties();
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.user", userName);
//creates a new session with an authenticator
Authenticator auth = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
};
return (Session.getInstance(properties, auth));
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于smtp设置,当我在本地服务器上运行应用程序时,它工作正常.但是当我在openshift服务器上运行应用程序时会导致异常
Transport.send(msg);
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出问题,在上面的设置中,为什么他们在我的本地机器上工作?
以下是我得到的例外
javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsWq 534-5.7.14 JJjb_c-FzrtUAccdDqOCMtsPAOL1AwIDSCoireBRoI5X-avznrYbparV84O_zkAvrHXMB9 534-5.7.14 T0Zj8zXP1g1woaWHnTzJQ3vWFn3lwTNl9Kn8Ma9-d9FPD_xB-bMBSh5FEPdaMqID4WljXW 534-5.7.14 …Run Code Online (Sandbox Code Playgroud)