Cómo enviar correos con PHP

No hay SDK PHP oficial — llama a la API REST de Publiq con Guzzle (o cURL). Envía desde el servidor con la API key en el header.

Con Guzzle (composer require guzzlehttp/guzzle):

<?php
use GuzzleHttp\Client;

$client = new Client();
$res = $client->post('https://api.publiq.digital/v1/emails', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('PUBLIQ_API_KEY')],
    'json' => [
        'from' => 'you@yourdomain.com',
        'to' => 'user@example.com',
        'templateKey' => 'welcome-email',
        'variables' => ['first_name' => 'Ana'],
    ],
]);

$email = json_decode($res->getBody(), true);
echo $email['id'];

Buenas prácticas

  • Llama a Publiq siempre desde el servidor — la API key va en el header Authorization, nunca en el cliente.
  • En 429/5xx, reintenta con backoff exponencial (respeta Retry-After).
  • Prefiere templateKey sobre HTML inline para mantener el contenido versionado.
  • Maneja los errores por el campo error.code de la respuesta — ver Errores.
  • Envía desde un dominio verificado — ver Dominios.

Ver también

Cómo enviar correos con PHP — Publiq Docs