Aller au contenu

Laravel

Le mailer SMTP de Laravel fonctionne avec SpacePost sans aucun paquet.

.env
MAIL_MAILER=smtp
MAIL_SCHEME=smtp
MAIL_HOST=smtp.spacepost.dev
MAIL_PORT=25976
MAIL_USERNAME=spacepost
MAIL_PASSWORD=sp_live_YOUR_API_KEY
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="hello@acme.com"
MAIL_FROM_NAME="Acme"

Laravel 11 et ultérieur lisent MAIL_SCHEME=smtp et passent la connexion en STARTTLS ; Laravel 10 et antérieur lisent MAIL_ENCRYPTION=tls. Garder les deux lignes fonctionne sur toutes les versions. N’utilisez pas smtps ni ssl : le TLS implicite (port 465) n’est pas encore proposé.

Envoyez comme d’habitude :

use Illuminate\Support\Facades\Mail;
use App\Mail\OrderShipped;
Mail::to($user)->send(new OrderShipped($order));

Ajoutez les en-têtes de contrôle de SpacePost dans votre Mailable :

use Illuminate\Mail\Mailables\Headers;
public function headers(): Headers
{
return new Headers(text: [
'X-SpacePost-Tags' => 'category=order, order_id=' . $this->order->id,
]);
}

Les Mailables envoyés avec Mail::queue() fonctionnent normalement ; le worker de la file parle à SpacePost en SMTP. Gardez le nombre de workers concurrents dans la limite de débit.