Saltar al contenido principal
Documentation

Conector Laravel

Packagist: coffeemail/coffeemail-laravel v0.1.0

Driver oficial de CoffeeMail para Laravel Mailer, notificaciones y webhooks, con integración Symfony Mailer y soporte nativo para colas asíncronas.

¿Buscas el SDK independiente de PHP? Consulta la documentación del paquete oficial coffeemail/coffeemail-php.

SDK PHP
terminal
composer require coffeemail/coffeemail-laravel

Configuración del Entorno

Agrega tus credenciales en el archivo .env y configura CoffeeMail como el mailer predeterminado de tu aplicación.

.env
# .envMAIL_MAILER=coffeemailMAIL_FROM_ADDRESS="contato@seudominio.com.br"MAIL_FROM_NAME="Minha Empresa" COFFEEMAIL_API_KEY=cm_live_sua_chave_aquiCOFFEEMAIL_WEBHOOK_SECRET=whsec_seu_secret_aqui
config/mail.php
// config/mail.php (opcional - configurado automaticamente pelo package)'mailers' => [    'coffeemail' => [        'transport' => 'coffeemail',        'key' => env('COFFEEMAIL_API_KEY'),    ],],

Envío con Laravel Mailer (Mailables y Colas)

Envía correos electrónicos utilizando la sintaxis nativa de Laravel Mail, con soporte total para colas asíncronas de queue worker.

app/Mail/PedidoConfirmadoMail.php
namespace App\Mail; use Illuminate\Bus\Queueable;use Illuminate\Mail\Mailable;use Illuminate\Queue\SerializesModels; class PedidoConfirmadoMail extends Mailable{    use Queueable, SerializesModels;     public function __construct(public array $pedido) {}     public function build()    {        return $this->subject('Seu pedido foi confirmado!')            ->html('<h1>Obrigado pela compra!</h1><p>Pedido #' . $this->pedido['id'] . '</p>');    }} // Disparo síncrono ou enfileirado no background worker:use Illuminate\Support\Facades\Mail;use App\Mail\PedidoConfirmadoMail; // Envio imediatoMail::to('cliente@gmail.com')->send(new PedidoConfirmadoMail($pedido)); // Enfileiramento assíncrono (Queue)Mail::to('cliente@gmail.com')->queue(new PedidoConfirmadoMail($pedido));

Acceso Directo a la API mediante Facade

La Facade CoffeeMail permite acceder directamente a todos los recursos de la API de CoffeeMail con desestructuración de tuplas [$data, $error].

ExemploFacade.php
use CoffeeMail\Laravel\Facades\CoffeeMail; // 1. Envio direto via Facade com tipagem estrita[$data, $error] = CoffeeMail::emails()->send([    'from' => 'noreply@seudominio.com.br',    'to' => 'cliente@gmail.com',    'subject' => 'Notificação Crítica',    'html' => '<p>Conteúdo da mensagem</p>',]); if ($error) {    throw $error->toException();} // 2. Consulta de domínios cadastrados[$domains, $error] = CoffeeMail::domains()->list(); // 3. Consulta de estatísticas[$stats, $error] = CoffeeMail::stats()->get();

Protección de Webhooks con Middleware

El middleware verify.coffeemail.signature valida la firma criptográfica HMAC SHA-256 y protege tus rutas contra manipulaciones.

routes/api.php
use Illuminate\Http\Request;use Illuminate\Support\Facades\Route; // routes/api.phpRoute::post('/webhooks/coffeemail', function (Request $request) {    $event = $request->input('event');    $payload = $request->input('data');     match ($event) {        'email.delivered' => Log::info("Email entregue: {$payload['id']}"),        'email.bounced' => Log::warning("Bounce detectado: {$payload['id']}"),        default => null,    };     return response()->json(['status' => 'ok']);})->middleware('verify.coffeemail.signature');