3

我正在使用 PHP 运行时,当我使用下面的代码发送管理员电子邮件(使用管理员电子邮件配额)时,它可以工作并且我收到了电子邮件。但是,它会将消息发送给所有具有管理员权限的用户(如 GAE 管理控制台中的权限下所列),其中包括两个(非用户)服务帐户(例如 12345678@project.gserviceaccount.com 和 myappid@appspot。 gserviceaccount.com) 反弹。

<?
require_once 'google/appengine/api/mail/AdminMessage.php';
use \google\appengine\api\mail\AdminMessage;

$message = new AdminMessage(array("sender"=> "noreply@myappid.appspotmail.com"));
$message->setSubject("Admin Mail Test");
$message->setHtmlBody("Hello");
$message->send();

?>

有没有办法在仍然使用 AdminMessage 的同时排除这些帐户?

4

1 回答 1

1

免责声明:我对所讨论的 API 不是很熟悉。我可能错过了什么。

刚刚在代码中滚动了一段时间,我看不出有什么办法,但这并不意味着没有办法。

据我所知,问题是:

final class AdminMessage extends BaseMessage

这意味着您不能扩展 AdminMessage ,这实际上只是在之前添加了很多检查

ApiProxy::makeSyncCall(
      'mail', 'SendToAdmins', $this->message, $response);

有问题的类不是循环通过管理员,而是简单地触发 API 调用以将它们全部邮寄。

所以,我认为这是一个 API 问题,而不是代码问题。如果 API 允许您将管理员标记为不被邮寄,那么您可以做您想做的事情。否则,您可能想要对您有两个没有活动地址的管理员这一事实做点什么。

如果我站在你的立场上,我会考虑尽可能优雅地处理弹跳的最佳方法。你知道他们要来了,你怎么处理他们?

老实说,几乎所有与电子邮件遭遇退回有关的事情,但除非您有停止列表,否则您可以将退回添加到您只需要每次都继续处理它们。

参考

于 2015-04-27T22:15:44.597 回答