java - 从备用地址发送电子邮件

标签 java google-app-engine email

<分区>

因此,我们的 GAE 应用程序中有一个非常好的、有效的电子邮件解决方案。我们可以根据需要从 noreply@company.com 发送电子邮件。 noreply@company.com 是一个 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 从 no 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)
...

最佳答案

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

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

关于java - 从备用地址发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25294237/

相关文章:

c# - 我如何要求客户端确认在服务器端 ASP.NET C# 上执行操作(如发送电子邮件)

java - 这种语法怎么可能

java - 什么时候写入访问日志?

java - csv 行中的多个部分

python - Google App Engine 中的服务器发送事件 (SSE)

java - 使用 Commons-Email 发送电子邮件到 Gmail

java - Windows 用户配置文件和 Java

google-app-engine - 在 GAE 中使用 Parse REST API 时出现 SocketTimeoutException

python - 谷歌应用程序引擎 webapp WSGIApplication 中 hexdigest 的正则表达式匹配

php - 一次从两个表中选择多个值