Docs / SDK / PHP / Mail

PHP — módulo Mail

🚧 En proceso de liberación  Todavía no implementado en el SDK de PHP. El contrato completo (entry points, tipos de datos, ejemplos que sí compilan) ya está fijado en el módulo equivalente de Go — úsalo como referencia mientras se completa este port.

Contrato ya fijado (stub)

El módulo Mail.php ya existe en el repositorio con las mismas clases y firmas que el SDK de Go — send() y status() lanzan RuntimeException todavía; la capa de transporte HTTP (Wa.php) ya está implementada (la usa el módulo DNS, que sí es real), solo falta conectar Mail a ella.

$mail = new Mail($api);

$result = $mail->send(new SendRequest(
    from: new Address('no-reply@tuempresa.com'),
    to: new Recipient('cliente@ejemplo.com', vars: ['nombre' => 'Ana']),
    subject: 'Confirma tu compra',
    html: 'Hola {{nombre}}',
    waitSend: true,
));
// $result->queueStatus: QueueStatus::PENDING | ::PROCESSING | ::SENT | ::ERROR

$status = $mail->status($result->queueKey);

// O con una plantilla ya registrada, en vez de subject/html/text:
$result = $mail->send(new SendRequest(
    from: new Address('no-reply@tuempresa.com'),
    to: new Recipient('cliente@ejemplo.com', vars: ['nombre' => 'Ana', 'codigo' => '482913']),
    template: 'recuperacion',
));

El campo template (string, opcional en SendRequest) es el id de una plantilla ya registrada y activa — el servidor valida que exista antes de encolar el correo y responde con error (no un envío fallido en segundo plano) si no. Ver /documentacion/mail — Con plantilla registrada para el detalle completo.

¿Dónde se crean las plantillas?

Las plantillas no se crean por API en ningún SDK — se agregan y editan desde Consola → Correos → Plantillas. El SDK solo referencia el id que le pongas ahí.

Mientras tanto