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ë.
| Postmark | Në OpenEmail |
|---|---|
| From | Dërguesi, me emrin e tij. |
| To | Marrës të ndarë me presje. Me Cc dhe Bcc, deri në 50 për mesazh. |
| ReplyTo | Një adresë e vetme përgjigjeje. |
| Subject | Subjekti. |
| HtmlBody | Trupi HTML. TextBody bëhet trupi tekst, dhe njëri nga të dy është i detyrueshëm. |
| Headers | Header-a të vetë, të dhënë si Name dhe Value: X-*, List-*, Reply-To, Precedence, Auto-Submitted, Importance, Priority dhe Feedback-ID. |
| Attachments | Skedarë, 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. |
| Tag | Një etiketë me emrin tag. |
| Metadata | Etiketa me të njëjtat emra dhe vlera. Me Tag, jo më shumë se 10 për mesazh. |
| TrackOpens | Ndez ose fik ndjekjen e hapjeve për mesazhin. |
| TrackLinks | HtmlAndText dhe HtmlOnly ndezin ndjekjen e klikimeve, dhe None e fik. |
| MessageStream | outbound, ose id-ja e çdo rrjedhe tjetër transaksionale, e dërgon mesazhin si zakonisht. |
| TemplateAlias | Slug-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 siTemplateAlias.- Rrjedha
broadcast, me ErrorCode 1236. Këto pika fundore dërgojnë postë transaksionale, kurse buletinet nisen si transmetime të OpenEmail. Subject,HtmlBodyoseTextBodynë një mesazh me shabllon, me ErrorCode 1123, sepse i jep shablloni.TrackLinksme vlerënTextOnly, 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
Metadatame 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,ErrorCode0 dheMessageOK.MessageIDështë id-ja e mesazhit të OpenEmail, ajo që përdorinGET /emails/{id}dhe webhook-et. Një headerIdempotency-Keyfunksionon 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
ErrorCodedheMessagee vet, dhe të tjerët nisen gjithsesi. - Gabimet kthehen si
ErrorCodedheMessage. Një çelës që mungon ose është i panjohur, ose një paemails: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.