Invio e ricezione di email con l'API Mail

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

Prima di iniziare

Devi registrare i tuoi indirizzi email come mittenti autorizzati. Per maggiori informazioni le informazioni, vedi chi può inviare email.

Invio di messaggi

La tecnologia PHP mail() integrata può inviare email tramite l'API Mail di App Engine. Dovrebbe funzionare bene con codice più esistente, purché sia conforme alle limitazioni elencate nella 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 di messaggi

Puoi configurare l'app in modo che riceva le email in arrivo agli indirizzi: formato:

anything@appid.appspotmail.com

Per ricevere email:

  1. Attiva la posta in arrivo nel file app.yaml dell'app. Aggiungi quanto segue alla sezione inbound_services:

    - mail
  2. Nel file di configurazione, crea mappature dai percorsi URL che rappresentano gli indirizzi email ai gestori nel codice dell'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 dalle php://input e analizza l'email utilizzando Mailparse.