我正在使用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时排除这些帐户?
答案 0 :(得分:1)
免责声明:我对相关API并不熟悉。我可能错过了一些东西。
刚刚在代码中滚动了一段时间我看不出这样做但这并不意味着没有办法。
据我所知,问题是:
final class AdminMessage extends BaseMessage
这意味着你无法扩展AdminMessage,这实际上只是增加了很多检查
ApiProxy::makeSyncCall(
'mail', 'SendToAdmins', $this->message, $response);
有问题的课程不是通过管理员循环,而是简单地触发API调用以将其全部邮寄。
我认为这是一个API问题,而不是代码问题。如果API允许您将管理员标记为不被邮寄,那么您可以执行您要执行的操作。否则,您可能想要做一些事情,即您有两个没有活动地址的管理员。
如果我穿上你的鞋子,我会考虑尽可能优雅地处理弹跳的最佳方法。你知道他们会来,所以你对他们做了什么?
老实说几乎所有关于通过电子邮件遇到弹跳的事情,除非你有一个停止列表,你可以添加弹跳给你,只需要继续并每次处理它们。