Kalo nga SendGrid
Mbani SDK-në e SendGrid 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/sendgrid dhe jepini, në vend të çelësit të SendGrid, një çelës API të OpenEmail me lejen emails:send. Ai udhëton në të njëjtin header Authorization: Bearer. 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 sgMail from '@sendgrid/mail'import client from '@sendgrid/client' client.setApiKey(process.env.OPENEMAIL_API_KEY)client.setDefaultRequest('baseUrl', 'https://api.openemail.uk/compat/sendgrid')sgMail.setClient(client) await sgMail.send({ from: '[email protected]', to: '[email protected]', subject: 'Your invoice', html: '<p>Your invoice is attached.</p>',})Në Node, vendosni së pari çelësin te klienti, pastaj URL-në bazë, dhe më pas ia jepni klientin paketës së postës. Mos e thirrni më sgMail.setApiKey pas kësaj, sepse ajo e kthen URL-në bazë te SendGrid. SDK-ja paralajmëron se çelësi nuk fillon me SG., gjë që është e padëmshme. Në Python, Ruby dhe PHP, jepeni hostin pa vijë të pjerrët në fund.
Çfarë i përgjigjet çfarës
Pika fundore që shërbehet është POST /v3/mail/send. Çdo element i personalizations bëhet mesazh më vete i OpenEmail me id-në e vet, ndaj një kërkesë dërgon jo më shumë se 100 mesazhe.
| SendGrid | Në OpenEmail |
|---|---|
| from | Dërguesi, me emrin e tij. Një personalizim mund të japë from e vet. |
| personalizations | Një mesazh secili. to, cc dhe bcc e tij mbajnë bashkë deri në 50 marrës, dhe subject, headers, custom_args, send_at e substitutions të tij vlejnë vetëm për atë mesazh. |
| subject | Subjekti, përveç kur një personalizim vendos të vetin. |
| content | text/plain bëhet trupi tekst dhe text/html trupi HTML. text/x-amp-html lihet jashtë, sepse trupi HTML e mbart tashmë mesazhin. |
| attachments | Skedarë, jo më shumë se 20 dhe gjithsej 5 MB. Një imazh inline, content_id e të cilit HTML-ja e përdor si cid:, futet aty ku shfaqet. Çdo skedar tjetër inline mbërrin si bashkëngjitje e zakonshme. |
| reply_to | Adresa e përgjigjes. Edhe reply_to_list funksionon, për sa kohë mban një adresë të vetme. |
| headers | Header-a të vetë: X-*, List-*, Reply-To, Precedence, Auto-Submitted, Importance, Priority dhe Feedback-ID. Një personalizim shton të vetët. |
| categories | Etiketa me emrat category, category_2 e me radhë, secila me një kategori. |
| custom_args | Etiketa me të njëjtat emra dhe vlera. Vlerat e një personalizimi kanë përparësi. |
| send_at | Një dërgim i planifikuar, deri në një vit përpara. Një kohë që ka kaluar dërgon menjëherë. |
| substitutions | Çdo çelës zëvendësohet me vlerën e tij në subjektin, trupin tekst dhe trupin HTML të atij mesazhi. |
| template_id | Id-ja (tpl_...) ose slug-u i një shablloni të OpenEmail, i plotësuar nga dynamic_template_data. |
| tracking_settings | open_tracking.enable dhe click_tracking.enable ndezin ose fikin ndjekjen e hapjeve dhe të klikimeve për mesazhin. |
| mail_settings | sandbox_mode.enable kontrollon kërkesën, dërguesin dhe shabllonin, pastaj përgjigjet me 200 pa dërguar asgjë. |
Një mesazh mbart jo më shumë se 10 etiketa, duke numëruar bashkë kategoritë dhe custom_args. Një kërkesë që ka nevojë për më shumë refuzohet në vend që të shkurtohet, që asgjë nga ato që dërguat të mos humbasë pa fjalë.
Çfarë refuzohet, dhe pse
- Një id shablloni të SendGrid te
template_id, sid-…. Shabllonet mbeten te SendGrid, ndaj krijojeni sërish shabllonin në OpenEmail dhe dërgoni id-në ose slug-un e tij. contentpranëtemplate_id, sepse një shabllon i OpenEmail jep gjithë trupin.substitutionsme një shabllon për të njëjtën arsye: kalojini vlerat tedynamic_template_data.- Më shumë se një adresë përgjigjeje,
reply_todhereply_to_listbashkë, dhe lloje përmbajtjeje të tjera përveç tekstit dhe HTML-së. Dërgojeni një ftesë kalendari si bashkëngjitje.ics. mail_settings.footeri ndezur, si edhesections, sepse OpenEmail nuk shkruan tekst në mesazhin tuaj.- Më shumë se 10 etiketa, një emër etikete me diçka tjetër përveç shkronjave, shifrave,
_dhe-, një header jashtë listës më sipër, dhe më shumë se 100 personalizime në një kërkesë.
asm, batch_id, ip_pool_name, cilësimet bypass te mail_settings, subscription_tracking, ganalytics, click_tracking.enable_text dhe open_tracking.substitution_tag pranohen dhe nuk ndryshojnë asgjë. Adresat në listën e bllokimit të hapësirës së punës anashkalohen gjithmonë, çfarëdo që të thotë një cilësim bypass.
Përgjigjet dhe gabimet
- Një dërgim përgjigjet me 202, me trup bosh dhe me id-në e mesazhit të OpenEmail te
X-Message-Id, id-në që përdorinGET /emails/{id}dhe webhook-et. Me disa personalizime, ai mban id-në e mesazhit të parë. Një headerIdempotency-Keyfunksionon si në pjesën tjetër të API-së. - Gabimet kthehen si
errors, një listë memessage,fielddhehelp: 400 për një kërkesë që nuk mund të dërgohet, 401 për një çelës që mungon ose është i panjohur, 403 për një çelës paemails:sendose për një adresë From që çelësi nuk mund ta përdorë ose domeni i së cilës nuk mund të dërgojë ende, 413 për një trup mbi 30 MB ose bashkëngjitje mbi 5 MB, dhe 429 kur hapësira e punës ka shteruar kuotën e dërgimit. - Kur një personalizim dështon pasi të mëparshmit u pranuan, gabimi emërton mesazhet e dërguara tashmë, që një provë e re t’i lërë jashtë.