Invio e ricezione di messaggi con l'API Mail

Questa guida descrive come utilizzare l'API Mail per inviare e ricevere posta.

Prima di iniziare

Devi registrare le email del mittente come mittenti autorizzati. Per ulteriori informazioni, consulta chi può inviare email.

Invio della posta

La funzione mail() integrata di PHP può inviare email tramite l'API Mail di App Engine. Questo dovrebbe funzionare con la maggior parte del codice esistente se è conforme alle limitazioni specificate in Invio della posta.

In alternativa, puoi effettuare chiamate dirette all'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';
}

Ricezione della posta

Puoi configurare la tua app in modo da ricevere le email in arrivo agli indirizzi nel seguente formato:

anything@appid.appspotmail.com

Per ricevere email:

  1. Attiva la posta in arrivo nel file app.yaml della tua app. Aggiungi quanto segue a inbound_services:

    - mail
  2. Nel file di configurazione, crea le mappature dei percorsi degli URL che rappresentano gli indirizzi email dei gestori nel codice della tua app. Il pattern /_ah/mail/.+ corrisponde a tutti gli indirizzi email in arrivo:

    - url: /_ah/mail/.+
      script: handle_incoming_email.php
      login: admin
  3. Implementa il codice per i gestori specificati nel codice dell'applicazione.

    Puoi leggere i dati MIME da php://input e analizzare il contenuto delle email utilizzando Mailparse.