我正在运行 Java Web 应用程序并尝试从中发送电子邮件通知。当我们在我们的一台服务器上托管这个应用程序时,它运行得非常好。我们将其指向端口 25 上的 smtp.gmail.com 以及我们能够发送的消息。
但是现在为了安全起见,我们将它托管在我们客户的一台服务器上。他们碰巧阻止了所有 smtp 域并且只允许他们自己的 (SMTPRELAY.COMPANYNAME.COM)。我更改了代码中的主机,但现在身份验证失败。
使用这家公司的中继服务器发送电子邮件时,是否仍然可以验证我的 gmail 帐户?最好的解决方案是什么?
下面是代码的相关部分。
content = "message content";
List<String> recipients = LIST_OF_RECIPIENT_EMAIL_ADDRESSES;
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "SMTPRELAY.COMPANYNAME.COM");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.ssl.trust", "SMTPRELAY.COMPANYNAME.COM");
props.put("mail.debug", "true");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
//This is where the email account name and password are set
return new PasswordAuthentication("SUPPORTEMAILACCOUNT@gmail.com", "PASSWORD");
}
});
try{
MimeMessage message = new MimeMessage(session);
message.setReplyTo(new Address[]{new InternetAddress("no-reply@gmail.com")});
for(String recipient: …Run Code Online (Sandbox Code Playgroud)