Php GAE筛选器管理员邮件收件人

Php GAE筛选器管理员邮件收件人,php,google-app-engine,Php,Google App Engine,我正在使用PHP运行时,当我使用下面的代码发送一封管理电子邮件(使用管理电子邮件配额)时,它工作正常,我收到了电子邮件。但是,它会将消息发送给具有管理权限的所有用户(如GAE管理控制台中权限下所列),其中包括两个(非用户)服务帐户(例如。12345678@project.gserviceaccount.com & myappid@appspot.gserviceaccount.com)它会反弹 <? require_once 'google/appengine/api/mail/Admin

我正在使用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时排除这些帐户?

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

刚刚在代码中转了一段时间,我看不出有什么办法可以做到这一点,但这并不意味着没有办法

据我所知,问题是:

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

ApiProxy::makeSyncCall(
      'mail', 'SendToAdmins', $this->message, $response);
所讨论的类不是在管理员之间循环,而是简单地触发一个API调用来将他们全部发送出去

因此,我认为这是一个API问题,而不是代码问题。如果API允许您将管理员标记为不可邮寄,那么您可以执行您正在尝试执行的操作。否则,您可能需要对两个管理员没有活动地址这一事实采取一些措施

如果我是你的话,我会考虑如何最好地处理反弹,尽可能优雅。你知道他们要来,那你怎么处理他们

老实说,几乎所有与电子邮件有关的遭遇都会反弹,但除非你有一个阻止列表,否则你可以将反弹添加到其中,你只需要每次都继续处理它们

工具书类

查看扩展的源代码,看起来to属性的设置程序受到了限制。我认为使用AdminMessage无法实现这一点。@gamesmad属性受到保护,因此可以通过继承类来访问它们。不过,这并不重要,因为这是在向消息队列发布消息。只能添加收件人,不能删除未添加的收件人。为什么不通过管理控制台删除这些电子邮件地址呢?管理控制台中具有权限的帐户(其他服务帐户)需要它们,它们无法删除。