Envía y recibe correos con la API de correo

En esta guía, se describe cómo usar la API de correo para enviar y recibir correos electrónicos.

Antes de comenzar

Debes registrar los correos electrónicos de tus remitentes como remitentes autorizados. Para obtener más información, consulta quién puede enviar correos electrónicos.

Envía correos electrónicos

La función mail() integrada de PHP puede enviar correos electrónicos a través de la API de correo electrónico de App Engine. Esto debería funcionar bien con la mayoría de los códigos existentes, siempre que se adapte a las restricciones que se enumeran en la sección Envía correos electrónicos.

Otra alternativa es hacer llamadas directas a la API de correo electrónico de la siguiente manera:

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

Cómo recibir correos electrónicos

Puedes configurar la aplicación para que reciba correos electrónicos entrantes en las direcciones con el siguiente formato:

anything@appid.appspotmail.com

Para recibir correos electrónicos, realiza los siguientes pasos:

  1. Habilita el correo electrónico entrante en el archivo app.yaml de tu app: Agrega lo siguiente a la sección inbound_services:

    - mail
  2. En tu archivo de configuración, crea mapeos a partir de rutas de URL que representen direcciones de correo electrónico a los controladores en el código de tu app. El patrón /_ah/mail/.+ hace que todas las direcciones de correo electrónico entrantes coincidan de la siguiente manera:

    - url: /_ah/mail/.+
      script: handle_incoming_email.php
      login: admin
  3. Implementa el código para los controladores que especificaste en el código de la aplicación.

    Puedes leer los datos de MIME en php://input y analizar el contenido de los correos electrónicos mediante Mailparse.