Como enviar e receber e-mails com a API Mail

Este guia descreve como usar a Mail API para enviar e receber e-mails.

Antes de começar

Você precisa registrar seus remetentes de e-mails como remetentes autorizados. Para mais informações, consulte quem pode enviar e-mails.

Como enviar e-mails

A função integrada mail() do PHP pode enviar e-mails por meio da API Mail do App Engine. Isso deve funcionar bem com a maioria dos códigos existentes, desde que esteja em conformidade com as restrições listadas no Envio de e-mails.

Como alternativa, é possível fazer chamadas diretas para a API Mail:

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';
}

Como receber e-mails

É possível configurar seu aplicativo para receber e-mails de endereços no seguinte formato:

anything@appid.appspotmail.com

Para receber e-mails:

  1. Ative os e-mails recebidos no arquivo app.yaml do seu aplicativo. Adicione o seguinte a inbound_services:

    - mail
  2. No arquivo de configuração, crie mapeamentos de caminhos de URL que representem endereços de e-mail para gerenciadores no código do aplicativo. O padrão /_ah/mail/.+ corresponde a todos os endereços de recebimento de e-mail:

    - url: /_ah/mail/.+
      script: handle_incoming_email.php
      login: admin
  3. Implemente código para os gerenciadores especificados no código do aplicativo.

    É possível ler os dados MIME de php://input e analisar o conteúdo do e-mail com o Mailparse (ambos em inglês).