Envoyer et recevoir des e-mails avec l'API Mail

Ce guide explique comment utiliser l'API Mail pour envoyer et recevoir des e-mails.

Avant de commencer

Vous devez enregistrer vos adresses e-mail d'expédition en tant qu'expéditeurs autorisés. Pour en savoir plus, consultez la section Utilisateurs autorisés à envoyer des e-mails.

Envoyer des e-mails

La fonction mail() intégrée de PHP peut envoyer des e-mails via l'API Mail d'App Engine. Cela devrait fonctionner correctement avec la plupart des codes existants, à condition qu'ils respectent les restrictions indiquées dans la section Envoyer des e-mails.

Sinon, vous pouvez appeler l'API Mail directement :

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

Recevoir des messages

Vous pouvez configurer votre application afin que les messages entrants soient reçus par certaines adresses au format suivant :

anything@appid.appspotmail.com

Pour recevoir des e-mails, procédez comme suit :

  1. Activez les messages entrants dans le fichier app.yaml de votre application. Ajoutez les éléments suivants au fichier inbound_services :

    - mail
  2. Dans votre fichier de configuration, créez des mappages à partir des chemins d'URL représentant les adresses e-mail des gestionnaires dans le code de votre application. Le modèle /_ah/mail/.+ correspond à toutes les adresses e-mail de réception.

    - url: /_ah/mail/.+
      script: handle_incoming_email.php
      login: admin
  3. Mettez en œuvre le code pour les gestionnaires que vous avez spécifiés dans votre code d'application.

    Vous pouvez lire les données MIME dans le flux php://input et analyser le contenu des e-mails à l'aide de Mailparse.