Kalo te dokumentacioni
Baza e njohurive

Kalo nga Postmark

Mbani bibliotekën e Postmark dhe dërgoni përmes OpenEmail. Ndryshoni hostin dhe tokenin e serverit të saj, dhe kodi juaj i dërgimit mbetet siç është.

Çfarë të ndryshoni

Drejtojeni bibliotekën te https://api.openemail.uk/compat/postmark dhe vendosni, aty ku shkon tokeni i serverit, një çelës API të OpenEmail me lejen emails:send. Ai udhëton në të njëjtin header X-Postmark-Server-Token. Thirrjet tuaja që dërgojnë postë mbeten siç janë, dhe adresa From vendos nëse një mesazh mund të niset, si kudo në OpenEmail.

import { ServerClient } from 'postmark' const client = new ServerClient(process.env.OPENEMAIL_API_KEY, {  requestHost: 'api.openemail.uk/compat/postmark',}) await client.sendEmail({  From: '[email protected]',  To: '[email protected]',  Subject: 'Your invoice',  HtmlBody: '<p>Your invoice is attached.</p>',  MessageStream: 'outbound',})

Në Node, requestHost është hosti dhe shtegu bashkë, pa skemë dhe pa vijë të pjerrët në fund. Në Ruby, path_prefix do një vijë të pjerrët në të dy skajet. Në Python, përdorni paketën zyrtare postmark-python me base_url. Paketa e komunitetit postmarker nuk arrin dot një shteg nën një host, ndaj këtu nuk funksionon. Në PHP, PostmarkClient::$BASE_URL merr skemën, hostin dhe shtegun pa vijë të pjerrët në fund. Është statik, ndaj vlen për çdo klient Postmark në proces, përfshirë PostmarkAdminClient.

Çfarë i përgjigjet çfarës

Pikat fundore që shërbehen janë POST /email, /email/batch, /email/withTemplate dhe /email/batchWithTemplates. Emrat e fushave përputhen me çfarëdo shkronjash, të mëdha a të vogla, si te Postmark, dhe një varg bosh llogaritet si i lënë jashtë.

PostmarkNë OpenEmail
FromDërguesi, me emrin e tij.
ToMarrës të ndarë me presje. Me Cc dhe Bcc, deri në 50 për mesazh.
ReplyToNjë adresë e vetme përgjigjeje.
SubjectSubjekti.
HtmlBodyTrupi HTML. TextBody bëhet trupi tekst, dhe njëri nga të dy është i detyrueshëm.
HeadersHeader-a të vetë, të dhënë si Name dhe Value: X-*, List-*, Reply-To, Precedence, Auto-Submitted, Importance, Priority dhe Feedback-ID.
AttachmentsSkedarë, jo më shumë se 20 dhe gjithsej 5 MB. Një imazh, ContentID e të cilit HTML-ja e përdor si cid:, futet aty ku shfaqet. Çdo skedar tjetër mbërrin si bashkëngjitje e zakonshme.
TagNjë etiketë me emrin tag.
MetadataEtiketa me të njëjtat emra dhe vlera. Me Tag, jo më shumë se 10 për mesazh.
TrackOpensNdez ose fik ndjekjen e hapjeve për mesazhin.
MessageStreamoutbound, ose id-ja e çdo rrjedhe tjetër transaksionale, e dërgon mesazhin si zakonisht.
TemplateAliasSlug-u ose id-ja (tpl_...) e një shablloni të OpenEmail, i plotësuar nga TemplateModel. InlineCss pranohet dhe nuk ndryshon asgjë.

Çfarë refuzohet, dhe pse

  • TemplateId, me ErrorCode 1101. Një id shablloni i Postmark nuk do të thotë asgjë këtu, ndaj krijojeni sërish shabllonin në OpenEmail dhe dërgoni slug-un ose id-në e tij si TemplateAlias.
  • Rrjedha broadcast, me ErrorCode 1236. Këto pika fundore dërgojnë postë transaksionale, kurse buletinet nisen si transmetime të OpenEmail.
  • Subject, HtmlBody ose TextBody në një mesazh me shabllon, me ErrorCode 1123, sepse i jep shablloni. TrackLinks me vlerën TextOnly, sepse OpenEmail ndjek lidhjet në pjesën HTML.
  • Më shumë se një adresë përgjigjeje, një header i dhënë dy herë ose jashtë listës më sipër, më shumë se 10 etiketa, dhe një emër etikete ose Metadata me diçka tjetër përveç shkronjave, shifrave, _ dhe -.
  • Një grup me më shumë se 100 mesazhe, me ErrorCode 410. Postmark merr 500, ndaj ndajini grupet më të mëdha.

Përgjigjet dhe gabimet

  • Një dërgim përgjigjet me 200, me To, SubmittedAt, MessageID, ErrorCode 0 dhe Message OK. MessageID është id-ja e mesazhit të OpenEmail, ajo që përdorin GET /emails/{id} dhe webhook-et. Një header Idempotency-Key funksionon si në pjesën tjetër të API-së.
  • Një grup përgjigjet me 200, me një rezultat për çdo mesazh, sipas radhës. Një mesazh që dështoi mbart vetëm ErrorCode dhe Message e vet, dhe të tjerët nisen gjithsesi.
  • Gabimet kthehen si ErrorCode dhe Message. Një çelës që mungon ose është i panjohur, ose një pa emails:send, merr HTTP 401 me ErrorCode 10. Pjesa tjetër merr HTTP 422: ErrorCode 300 për vetë mesazhin, 400 për një adresë From që çelësi nuk mund ta përdorë, 401 për një domen që nuk mund të dërgojë ende, 402 për një trup që nuk është JSON dhe 405 për një hapësirë pune që ka shteruar kuotën e dërgimit. HTTP 413 do të thotë që trupi kalon 10 MB, ose 50 MB për një grup, ose që bashkëngjitjet kalojnë 5 MB.