Veiledninger › SMTP vs. e-post-API: hva bør du bruke?

SMTP vs. e-post-API: hva bør du bruke?

Det finnes to måter å overlevere en melding til en e-posttilbyder for sending på: en SMTP-relé, eller et HTTP-basert e-post-API. Begge leverer den samme e-posten til den samme innboksen. Forskjellen ligger i hvordan applikasjonen din snakker med tilbyderen, og den forskjellen påvirker hvor mye kontroll du får og hvor mye kode du må skrive.

Her er hvordan de to sammenlignes, og når du bør velge hver av dem.

Hva en SMTP-relé er

SMTP (Simple Mail Transfer Protocol) er standardprotokollen e-postservere har brukt til å flytte e-post siden 1980-tallet. En SMTP-relé er en server applikasjonen din kobler seg til, autentiserer seg mot og overleverer en melding til over denne protokollen. Reléet sørger så for å levere den til mottakeren.

Nesten alle språk og rammeverk har allerede en SMTP-klient innebygd eller ett bibliotek unna. Hvis koden din, CMS-et ditt eller rammeverket ditt allerede kan sende post, snakker det SMTP. Å bytte til en tilbyder er ofte bare et bytte av vert, port og påloggingsdetaljer.

En typisk SMTP-konfigurasjon ser slik ut:

Vert:      smtp.din-tilbyder.no
Port:      587
Brukernavn: din-api-nokkel
Passord:    din-api-hemmelighet
Sikkerhet:  STARTTLS

Pek den eksisterende e-postmotoren din mot disse innstillingene, så flyter posten gjennom tilbyderen uten kodeendringer.

Hva et HTTP-basert e-post-API er

Et e-post-API er et REST-endepunkt du sender en HTTP-forespørsel til, vanligvis en POST med en JSON-kropp som beskriver meldingen. I stedet for å snakke en e-postprotokoll gjør applikasjonen din en helt vanlig web-forespørsel, av samme typen den allerede gjør mot alle andre tjenester den integrerer med.

En minimal sending ser slik ut:

curl https://api.din-tilbyder.no/v1/send \
  -H "Authorization: Bearer din-api-nokkel" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "kvittering@firmaetditt.no",
    "to": "kunde@example.com",
    "subject": "Kvitteringen din",
    "html": "<p>Takk for bestillingen.</p>"
  }'

Svaret kommer tilbake som JSON, med en meldings-ID du kan lagre og en tydelig status du kan handle på.

Avveiningene

SMTP er plug-and-play. Styrken er kompatibilitet. Har du en eksisterende e-postmotor, et rammeverks e-postlag eller en ferdig applikasjon, betyr SMTP ingen omskriving. Det er måten med minst friksjon for å flytte over på en tilbyder.

Et API gir deg rikere kontroll. Fordi du sender strukturert JSON og får strukturerte svar, gir et API deg ting SMTP gjør tungvint:

  • Strukturerte feil. En mislykket POST returnerer en spesifikk feil du kan forgrene på i koden, i stedet for en numerisk SMTP-status du må tolke.
  • Idempotens. Du kan feste en idempotensnøkkel, slik at en gjentatt forespørsel ikke sender den samme e-posten to ganger, noe SMTP ikke har noe begrep om.
  • En meldings-ID ved sending. Svaret gir deg en ID du kan logge og senere koble mot webhooks for levering, åpninger og returer.
  • Vedlegg og metadata. Filer, etiketter, malreferanser og egendefinerte headere går inn i forespørselskroppen som vanlige felt.
  • Hastighet og skala. En enkelt HTTPS-forespørsel med gjenbruk av tilkoblingen er ofte raskere enn en SMTP-samtales flere rundturer, noe som betyr noe ved høyt volum.

Kostnaden ved API-et er at det er tilbyderspesifikt: forespørselsformatet er ikke en universell standard slik SMTP er, så du skriver en liten mengde integrasjonskode.

Når du bør velge hva

  • Velg SMTP når du har en eksisterende e-postmotor eller et rammeverk som allerede sender e-post, når du integrerer programvare du ikke kontrollerer, eller når du bare vil ha posten i gang med minst mulig endring.
  • Velg et e-post-API når du bygger sending inn i en applikasjon fra bunnen av, når du vil ha idempotens, strukturerte feil og webhooks, eller når du sender ved et volum der gjennomstrømning og presis kontroll betyr noe.

Mange team bruker begge: SMTP for et eldre system eller et tredjepartsverktøy, og API-et for hovedapplikasjonen sin. For detaljene om hva API-et kan gjøre, se e-post-API-funksjonen og referansen for send-API-et.

Slik håndterer Mailhuset det

Mailhuset gjør begge deler. REST-API-et har offisielle SDK-er for Node, Python, PHP og Go, og i betalte abonnementer tar et SMTP-relé på smtp.mailhuset.com imot e-post fra verktøy som bare støtter SMTP, under de samme reglene. Å flytte en app bort fra SMTP er vanligvis noen få linjer: bytt ut e-postkallet med én HTTPS-forespørsel, behold det verifiserte domenet, og få signerte webhooks som rapporterer levering. Det samme produktet dekker transaksjonell e-post, innkommende post og masseutsendelser, sender fra EU som standard, og prises som en inkludert mengde pluss en pris per tusen utover det.

Se e-post-API-funksjonen og referansen for send-API-et for å komme i gang.