使用Google Apps Engine和PHP将邮件发送到格式化的电子邮件地址


require_once 'google/appengine/api/mail/Message.php';
use googleappengineapimailMessage;
// ...
$message_body = "...";
$mail_options = [
    "sender" => "admin@example.com",
    "to" => "user@example.com",
    "subject" => "Your example.com account has been activated.",
    "textBody" => $message_body
];
try {
    $message = new Message($mail_options);
    $message->send();
} catch (InvalidArgumentException $e) {
    // ...
}

我使用了上述代码来发送Google Apps Engine(用于PHP托管)的电子邮件,并且它正在成功工作。

但是我需要发送一封邮件到格式化的电子邮件地址,例如联系人< user@example.com>

我尝试了以下代码,但它不起作用,我得到了exception 'InvalidArgumentException' with message 'Invalid 'to' recipient: <user@example.com>'

$mail_options = [
    "sender" => "admin@example.com",
    "to" => "Contact Name &lt;user@example.com&gt;",
    "subject" => "Your example.com account has been activated.",
    "textBody" => $message_body
];

$mail_options = [
    "sender" => "admin@example.com",
    "to" => "Contact Name <user@example.com>",
    "subject" => "Your example.com account has been activated.",
    "textBody" => $message_body
];

可能吗?

您在那里遇到的错误(Invalid sender address)与电子邮件的发送者有关(示例代码中的 admin@example.com),而不是 to /em>地址。邮件服务文档包括发送者地址的以下安全限制

出于安全目的,消息的发送者地址必须是该应用程序管理员的电子邮件地址或该应用程序的任何有效的电子邮件接收地址(请参阅接收邮件)。发件人也可以是登录的当前用户的Google帐户电子邮件地址,如果用户的帐户是Gmail帐户或在由Google Apps管理的域上。

您可以在应用引擎控制台中管理应用程序的管理员。

如果您首先看一下,那么您的示例可能会起作用(Java API肯定可以,但我不熟悉PHP版本)。

最新更新