Kalo te dokumentacioni
Baza e njohurive

Kalo nga Mailgun

Mbani SDK-në e Mailgun dhe dërgoni përmes OpenEmail. Ndryshoni URL-në bazë dhe çelësin e saj, dhe kodi juaj i dërgimit mbetet siç është.

Çfarë të ndryshoni

Drejtojeni SDK-në te https://api.openemail.uk/compat/mailgun dhe jepini, në vend të çelësit të Mailgun, një çelës API të OpenEmail me lejen emails:send. Ai udhëton si fjalëkalim i së njëjtës hyrje HTTP Basic, dhe emri i përdoruesit nuk kontrollohet. Domeni në shteg duhet të jetë një nga domenet e hapësirës së punës, dhe adresa From vendos nëse një mesazh mund të niset, si kudo në OpenEmail.

import formData from 'form-data'import Mailgun from 'mailgun.js' const mailgun = new Mailgun(formData)const mg = mailgun.client({  username: 'api',  key: process.env.OPENEMAIL_API_KEY,  url: 'https://api.openemail.uk/compat/mailgun',}) await mg.messages.create('acme.com', {  from: 'Acme Billing <[email protected]>',  to: ['[email protected]'],  subject: 'Your invoice',  html: '<p>Your invoice is attached.</p>',})

Në Ruby, argumenti i dytë është hosti dhe shtegu pa skemë. Në PHP, SDK-ja mban vetëm hostin e endpoint-it që i jepet, ndaj shtegu shtohet përmes AddPathPlugin nga php-http, të cilin SDK-ja e instalon tashmë. Paketa zyrtare e Python mund të regjistrojë një paralajmërim se hosti nuk është i Mailgun, dhe dërgon gjithsesi. Ajo gjithashtu riprovon një kërkesë që dështoi me 429 ose me një 5xx, ndaj OpenEmail përgjigjet me 400 në vend të 5xx sapo një pjesë e grupit është nisur.

Çfarë i përgjigjet çfarës

Pika fundore që shërbehet është POST /v3/{domain}/messages, si multipart/form-data, që u duhet bashkëngjitjeve, ose si application/x-www-form-urlencoded. Një emër fushe që mbaron me [] lexohet pa të.

MailgunNë OpenEmail
fromDërguesi, me emrin e tij.
toMarrës, të përsëritur ose të ndarë me presje. Me cc dhe bcc, deri në 50 për mesazh.
subjectSubjekti.
htmlTrupi HTML. text bëhet trupi tekst, dhe njëri nga të dy, ose template, është i detyrueshëm.
attachmentSkedarë, jo më shumë se 20 dhe gjithsej 5 MB.
inlineNjë imazh që HTML-ja e përdor si cid: me emrin e skedarit të tij futet aty ku shfaqet. Çdo skedar tjetër inline mbërrin si bashkëngjitje e zakonshme.
o:tagEtiketa me emrat tag, tag_2 e me radhë, secila me një etiketë.
v:Çdo variabël bëhet etiketë me emrin dhe vlerën e saj. Me o:tag, jo më shumë se 10 për mesazh.
o:deliverytimeNjë dërgim i planifikuar, deri në një vit përpara. Një kohë që ka kaluar dërgon menjëherë.
o:trackingBashkë me o:tracking-clicks dhe o:tracking-opens, ndez ose fik ndjekjen për mesazhin. htmlonly llogaritet si i ndezur.
o:testmodeyes e regjistron mesazhin si të dërguar pa e dorëzuar, ashtu si bën një çelës oe_test_.
h:Reply-ToAdresa e përgjigjes. Çdo fushë tjetër h: bëhet header i vetë: X-*, List-*, Precedence, Auto-Submitted, Importance, Priority dhe Feedback-ID.
recipient-variablesNjë dërgim në grup. Çdo adresë e to merr mesazhin e vet, ku %recipient.key% plotësohet nga variablat e saj dhe %recipient% me adresën e saj, dhe cc e bcc shkojnë në secilin. Një vendmbajtës pa vlerë mbetet siç është.
templateSlug-u ose id-ja (tpl_...) e një shablloni të OpenEmail, i plotësuar nga t:variables, ose përndryshe nga h:X-Mailgun-Variables. t:version zgjedh një version sipas numrit të tij.

Çfarë refuzohet, dhe pse

  • Një template me html ose text, sepse një shabllon i OpenEmail jep gjithë trupin, dhe një t:version që nuk është numër versioni.
  • o:deliverytime-optimize-period dhe o:time-zone-localize, sepse OpenEmail nuk zgjedh një kohë dërgimi për çdo marrës. Header-a të tjerë h:X-Mailgun-, që janë udhëzime për Mailgun: përdorni në vend të tyre opsionin o: përkatës.
  • amp-html më vete. Pranë html ose text lihet jashtë, sepse ata e mbartin tashmë mesazhin.
  • Më shumë se një adresë përgjigjeje, më shumë se 10 etiketa, një emër etikete me diçka tjetër përveç shkronjave, shifrave, _ dhe -, dhe një grup me më shumë se 100 marrës. Mailgun merr 1000, ndaj ndajini grupet më të mëdha.

o:dkim, o:require-tls, o:skip-verification, o:sending-ip, o:sending-ip-pool, o:tracking-pixel-location-top, o:archive-to, o:deliver-within dhe t:text pranohen dhe nuk ndryshojnë asgjë.

Përgjigjet dhe gabimet

  • Një dërgim përgjigjet me 200, me mesazhin Queued. Thank you. dhe një id: id-ja e mesazhit të OpenEmail në kllapa këndore, të cilën GET /emails/{id} dhe webhook-et e përdorin pa to. Një dërgim në grup krijon një mesazh për çdo marrës, secili me id-në e vet, dhe përgjigjet me të parin. Një header Idempotency-Key funksionon si në pjesën tjetër të API-së.
  • Një çelës që mungon ose është i panjohur merr 401 me tekstin e thjeshtë Forbidden, dhe një domen që hapësira e punës nuk e ka merr 404 me Domain not found. Gjithçka tjetër kthehet si një message: 400 për një mesazh që nuk mund të dërgohet, 403 për një çelës pa emails:send, një adresë From që çelësi nuk mund ta përdorë, një domen që nuk mund të dërgojë ende ose një hapësirë pune që ka shteruar kuotën e dërgimit, dhe 413 për një trup mbi 25 MB ose bashkëngjitje mbi 5 MB.
  • Kur një marrës i një grupi dështon pasi të tjerët u pranuan, gabimi emërton mesazhet e dërguara tashmë dhe përgjigjet me 400, që një SDK që riprovon të mos i dërgojë dy herë.