【问题标题】:Google App Engine Email谷歌应用引擎电子邮件
【发布时间】:2010-04-23 01:31:09
【问题描述】:

我使用以下方法在 Google App Engine servlet 中发送电子邮件:

  void Send_Email(String From,String To,String Message_Text)
  {
    Properties props=new Properties();
    Session session=Session.getDefaultInstance(props,null);
    try
    {
      Message msg=new MimeMessage(session);
      msg.setFrom(new InternetAddress(From,"nmjava.com Admin"));
      msg.addRecipient(Message.RecipientType.TO,new InternetAddress(To,"Ni , Min"));
      msg.setSubject("Servlet Message");
      msg.setText(Message_Text);
      Transport.send(msg);
    }
    catch (Exception ex)
    {
      // ...
    }
  }

但它不起作用,我错过了什么吗?有没有人可以使用电子邮件功能?


编辑: 我已经修复了字符串/文本部分,但电子邮件功能仍然不起作用,它说电子邮件已发送,但我检查了我的邮箱,没有收到。我在谷歌服务器上运行了,怎么了?

【问题讨论】:

  • 捕捉所有异常然后忽略它们是一种极好的方法,可以让你的生活变得更加困难。不要那样做。

标签: java google-app-engine email


【解决方案1】:

我想通了,我需要将我的 Gmail 地址作为发件人,否则不会有任何电子邮件发送出去。

【讨论】:

    【解决方案2】:

    我对 Java 了解不多,但也许如果您删除了 try/catch 内容,您可能会看到实际的错误是什么?

    根据文档:

    “当开发服务器中运行的应用程序调用邮件服务发送电子邮件消息时,该消息将打印到日志中。Java 开发服务器不发送电子邮件消息。”

    日志中是否显示任何内容?

    【讨论】:

    • 日志在哪里,在项目文件夹里找不到。
    • 当您在开发模式下运行时,您的日志将打印您的服务器运行的位置(同样,邮件不会从开发服务器发送)。部署后,可以从管理控制台看到日志:code.google.com/appengine/docs/java/runtime.html#Logging
    • 是的,我在网上找到的,错误日志说:未捕获的异常来自 servlet java.lang.IllegalArgumentException: content: String properties must be 500 characters or less.而是使用 com.google.appengine.api.datastore.Text,它可以存储任意长度的字符串。
    • 因此,在您的应用程序的某处,您有一个数据存储实体,其字符串字段长度超过 500 个字符。将其更改为 Text 应该没问题。
    猜你喜欢
    • 2012-06-13
    • 2011-08-16
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2014-06-30
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多