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ë.
| Mailgun | Në OpenEmail |
|---|---|
| from | Dërguesi, me emrin e tij. |
| to | Marrës, të përsëritur ose të ndarë me presje. Me cc dhe bcc, deri në 50 për mesazh. |
| subject | Subjekti. |
| html | Trupi HTML. text bëhet trupi tekst, dhe njëri nga të dy, ose template, është i detyrueshëm. |
| attachment | Skedarë, jo më shumë se 20 dhe gjithsej 5 MB. |
| inline | Një 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:tag | Etiketa 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:deliverytime | Një dërgim i planifikuar, deri në një vit përpara. Një kohë që ka kaluar dërgon menjëherë. |
| o:tracking | Bashkë me o:tracking-clicks dhe o:tracking-opens, ndez ose fik ndjekjen për mesazhin. htmlonly llogaritet si i ndezur. |
| o:testmode | yes e regjistron mesazhin si të dërguar pa e dorëzuar, ashtu si bën një çelës oe_test_. |
| h:Reply-To | Adresa e përgjigjes. Çdo fushë tjetër h: bëhet header i vetë: X-*, List-*, Precedence, Auto-Submitted, Importance, Priority dhe Feedback-ID. |
| recipient-variables | Një 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ë. |
| template | Slug-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ë
templatemehtmlosetext, sepse një shabllon i OpenEmail jep gjithë trupin, dhe njët:versionqë nuk është numër versioni. o:deliverytime-optimize-perioddheo: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 opsionino:përkatës.amp-htmlmë vete. Pranëhtmlosetextlihet 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ënGET /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ë headerIdempotency-Keyfunksionon 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 meDomain 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 paemails: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ë.