使用 Mail API 发送和接收邮件

本指南介绍如何使用 Mail API 发送和接收邮件。

准备工作

您必须将您的发件人电子邮件注册为已获授权的发件人。如需了解详情,请参阅谁可以发送电子邮件

发送邮件

PHP 的内置 mail() 函数可以通过 App Engine Mail API 发送电子邮件。这应该适用于大多数现有代码,前提是代码符合发送邮件中列出的限制条件。

或者,您可以直接调用 Mail API:

use google\appengine\api\mail\Message;

// Notice that $image_content_id is the optional Content-ID header value of the
// attachment. Must be enclosed by angle brackets (<>)
$image_content_id = '<image-content-id>';

// Pull in the raw file data of the image file to attach it to the message.
$image_data = file_get_contents('image.jpg');

try {
    $message = new Message();
    $message->setSender('from@example.com');
    $message->addTo('to@example.com');
    $message->setSubject('Example email');
    $message->setTextBody('Hello, world!');
    $message->addAttachment('image.jpg', $image_data, $image_content_id);
    $message->send();
    echo 'Mail Sent';
} catch (InvalidArgumentException $e) {
    echo 'There was an error';
}

接收邮件

您可以对应用进行设置,通过如下格式的地址接收传入电子邮件:

anything@appid.appspotmail.com

要接收电子邮件,请执行以下操作:

  1. 在应用的 app.yaml 文件中启用接收邮件。将以下内容添加到 inbound_services 中:

    - mail
  2. 在配置文件中,创建从代表电子邮件地址的网址路径到应用代码中处理程序的映射。模式 /_ah/mail/.+ 与所有传入电子邮件地址都匹配:

    - url: /_ah/mail/.+
      script: handle_incoming_email.php
      login: admin
  3. 实现您在应用代码中指定的处理程序的代码。

    您可以从 php://input 读取 MIME 数据,并使用 Mailparse 解析电子邮件内容。