当前位置: 首页 > 知识库问答 >
问题:

邮件服务GAE问题-发送邮件异常“javax.Mail.messagingexception:无法连接到SMTP主机:localhost,端口:25;”

邓毅
2023-03-14

我想从我的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服务器配置,App Engine将使用邮件服务发送消息

但它似乎试图连接到SMTP服务器...而且很明显本地主机上没有SMTP服务器...

我从来没有用过这个服务...我的配额已经满了。

求求你,救救我!

共有1个答案

翟昊明
2023-03-14

今天也有同样的问题。刚开始工作。app engine 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主机至少不会。google的Nice为他们的示例代码库中的一个不工作的示例提供了毫无意义的文档

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

 类似资料: