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

时间:2014-01-21 19:21:18

标签: php google-app-engine email

require_once 'google/appengine/api/mail/Message.php';

use google\appengine\api\mail\Message;

// ...

$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
];

有可能吗?

1 个答案:

答案 0 :(得分:3)

您在那里遇到的错误(Invalid sender address)与电子邮件的发件人相关(示例代码中为admin@example.com),而不是到< / em>地址。邮件服务documentation发件人地址包含以下安全限制:

  

出于安全考虑,邮件的发件人地址必须是应用程序管理员的电子邮件地址或应用程序的任何有效电子邮件接收地址(请参阅接收邮件)。如果用户的帐户是Gmail帐户或位于Google Apps管理的域中,则发件人也可以是当前登录用户的Google帐户电子邮件地址。

您可以在App Engine控制台中管理应用的管理员。

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