Zum Inhalt springen

Laravel

Der SMTP-Mailer von Laravel funktioniert ohne zusätzliche Pakete mit SpacePost.

.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 und später lesen MAIL_SCHEME=smtp und stellen die Verbindung per STARTTLS auf Verschlüsselung um; Laravel 10 und früher lesen MAIL_ENCRYPTION=tls. Wenn du beide Zeilen behältst, funktioniert es mit jeder Version. Verwende nicht smtps oder ssl: Implizites TLS (Port 465) wird noch nicht angeboten.

Sende wie gewohnt:

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

Füge die Steuerheader von SpacePost in deinem Mailable hinzu:

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

Mailables, die mit Mail::queue() gesendet werden, funktionieren wie gewohnt; der Queue-Worker spricht über SMTP mit SpacePost. Halte die Zahl der gleichzeitigen Worker innerhalb des Rate Limits.