从备用地址发送电子邮件

时间:2014-08-13 19:09:08

标签: java google-app-engine email

所以我们在GAE应用程序中有一个非常好的,有效的电子邮件解决方案。我们可以根据需要从noreply@company.com发送电子邮件。 noreply@company.com是我们的应用程序中具有dev访问权限的GAE帐户。

接下来,我们要使用与此帐户关联的SMTP服务器。为此,我们需要升级帐户以使用gmail。在我们继续这一过程中,Google通知我们,我们需要将gmail地址与此帐户相关联 - 我们选择了company.noreply@gmail.com。 noreply@company.com将成为备用地址。然后我们将noreply@company.com作为默认地址。现在我们可以远程使用smtp服务器,从noreply@company.com发送电子邮件。大。

第二天,我们发现这打破了我们的GAE应用程序上的邮件。在权限中,该帐户已从noreply@company.com更改为company.noreply@gmail.com。重新邀请noreply@company.com成功进行,但最后该帐户仍然是company.noreply@gmail.com。 noreply@company.com现在未经授权发送邮件,或换句话说,我们无法将noreply@company.com设置为来自地址,即使这是一个授权帐户。

有没有办法恢复通过GAE从没有reply@company.com发送电子邮件的能力?

-

当前代码:

final Properties props = new Properties();
final Session session = Session.getDefaultInstance(props, null);

try {
    final Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress("noreply@company.com"));
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    msg.setSubject(subject);
    msg.setContent(content, contentType);

    Transport.send(msg);
} catch (final MessagingException ex) {
    LOGGER.log(Level.SEVERE, ex.getMessage(), ex);
}

我们已邀请noreply@company.com成为管理员,并已成功接受,并在GAE权限中列出,尽管在备用地址下。

以下是GAE在尝试使用该已批准帐户发送电子邮件时出错:

Internal Server Error (500) - The server encountered an unexpected condition which prevented it from fulfilling the request
    at org.restlet.resource.ServerResource.doHandle(ServerResource.java:517)
    at org.restlet.resource.ServerResource.post(ServerResource.java:1216)
...
Caused by: java.lang.IllegalArgumentException: Unauthorized Sender: Unauthorized sender
    at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:109)
    at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:34)
    at com.glasseystrategy.jstratpad.util.MailUtils.sendEmailReport(MailUtils.java:400)
...

1 个答案:

答案 0 :(得分:0)

这可以作为GAE中公认的错误来解决。它目前是不可能的,我的知识也没有解决方法(除了使用不同的电子邮件地址)。

https://code.google.com/p/googleappengine/issues/detail?id=1107