邮件服务 GAE 问题 - 发送邮件异常"javax.mail.MessagingException: Could not connect to SMTP host: localhost, port:



我想从我的GAE项目发送邮件。我遵循了文档示例。。。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("xxx@xxxx.appspotmail.com", "Example.com Admin"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("xxxxx@gmail.com", "Mr. User"));
msg.setSubject("Your Example.com account has been activated");
msg.setText("This is a test");
Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

部署后,我收到以下异常消息

javax.mail.MessagingException:无法连接到SMTP主机:localhost,端口:25;

但文件上说:

当您创建JavaMail会话时,如果您没有提供任何SMTP服务器配置,应用程序引擎将使用邮件服务发送消息

但似乎要尝试连接到SMTP服务器。。。很明显,localhost上没有SMTP服务器。。。

我从未使用过这项服务。。。我的配额已经满了。

求你了,帮帮我!

今天也遇到了同样的问题。刚开始工作。应用程序引擎sdk已经包括了你需要发送电子邮件的类:

https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/mail/MailService.Message

以及相关的类是调用邮件服务的方法。用它们替换你的消息类,删除对javax.mail的所有引用

https://cloud.google.com/appengine/docs/standard/java/mail/sending-mail-with-mail-api

我无法让它工作,至少如果没有smtp主机,它看起来不会工作。谷歌在其示例代码库中为一个不起作用的示例提供了荒谬的文档,这很好

此外,如果您点击"谁可以发送邮件"链接,它会告诉您表单的任何地址anything@[APP_NAME].appspotmail.com或anything#[APP_ALIAS].appspotmail.com应该有效。使用我的应用程序名称会导致"未经授权的发件人",但使用仪表板中的应用程序id有效。本来应该是十分钟的解决方案变成了几个小时的苦差,但我有一个工作电子邮件。谢谢,谷歌。

邮件服务API支持应用程序引擎SDK中包含的JavaMail(javax.Mail)接口。使用任何其他罐子都可能产生问题。您可以使用Java 7和Java 8中的代码示例来演示如何发送邮件。

我应该注意的是,由于垃圾邮件问题,端口25、465和587上的出站连接是不允许的,因此邮件的发件人地址必须是此链接中选择的地址之一。

您可以通过仪表板获取应用程序ID/名称(与项目ID/名称相同)。

请注意,Issue Tracker是为报告错误和功能请求而保留的。如果您遇到任何与APP_NAME或APP_ALIAS有关的问题,建议您在那里报告该问题,以便我们能够深入了解该问题。

相关内容

最新更新