Dokumentasjon › Send transaksjonell e-post med Laravel

Send transaksjonell e-post med Laravel

Send en transaksjonell e-post fra Laravel med en enkelt POST til /v1/email, autentisert med en Bearer API-nøkkel. Det finnes ingen offisiell Laravel-pakke, så du kaller REST-endepunktet med Laravels innebygde Http-fasade. Dette er et direkte alternativ til Laravels mail-driver for transaksjonelle utsendelser: ingen mailer-konfigurasjon, bare et HTTP-kall. Se Send e-post via API-et for full feltreferanse.

Forutsetninger

Konfigurasjon

Legg nøkkelen i .env:

MAILHUSET_API_KEY=your-key-here

Eksponer den gjennom en config-fil, for eksempel config/services.php:

'mailhuset' => [
    'key' => env('MAILHUSET_API_KEY'),
],

Sending

Kall endepunktet fra en kontroller eller en køjobb med Http-fasaden:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Http;

class ReceiptController extends Controller
{
    public function send()
    {
        $response = Http::withToken(config('services.mailhuset.key'))
            ->post('https://api.mailhuset.com/v1/email', [
                'from'    => 'Acme <hello@yourdomain.com>',
                'to'      => ['customer@example.com'],
                'subject' => 'Your receipt',
                'html'    => '<p>Thanks for your order.</p>',
                'text'    => 'Thanks for your order.',
            ]);

        if ($response->successful()) {
            return $response->json('id');
        }

        // 401 bad/missing key, 403 from-domain not verified, 422 validation error.
        report(new \RuntimeException(
            "Mailhuset send failed ({$response->status()}): {$response->body()}"
        ));

        abort(502, 'Could not send email.');
    }
}

Http::withToken() setter Authorization: Bearer-headeren, og ->post() sender kroppen som JSON med riktig Content-Type. Å gjøre dette inne i en køjobb holder sendingen utenfor forespørselsløpet.

Felt

Bygg kroppen med de faktiske feltene: from (Name <address> på et verifisert domene), to (en liste), subject, og innholdet som html og text (send begge når du kan). cc, bcc, replyTo (lister) og idempotencyKey er valgfrie. Hele listen står i Send e-post via API-et.

Svar

En 2xx returnerer den aksepterte meldingen, inkludert id-en dens; $response->successful() dekker det området. Feil: 401 feil eller manglende nøkkel, 403 from-domenet er ikke verifisert, 422 en valideringsfeil (svaret sier hvilket felt).

Foretrekker du Laravels e-postdriver? Bruk SMTP

I et betalt abonnement kan du beholde Laravels egen Mail-fasade og mailables og sende via SMTP-reléet i stedet for å kalle API-et. Sett dette i .env med en SMTP-pålogging fra dashbordet:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailhuset.com
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=brukernavnet-til-påloggingen
MAIL_PASSWORD=passordet-til-påloggingen
MAIL_FROM_ADDRESS=hello@yourdomain.com

Neste steg

Gjenbruk innhold med Maler, og spor levering med Webhooks. Vil du ha en typet klient? Node og Python har offisielle SDK-er.


Trenger du hjelp? Send e-post til support@mailhuset.com.