Odeslání jediného e-mailu je skvělé, ale jednou z velkých výhod e-mailu je rychlé oslovení širšího publika. Dnes vám ukážu tři způsoby odesílání hromadných e-mailů pomocí Node.js a SendGrid. Jen pro zajímavost, řekněme, že jste vývojář JavaScriptu, který pracuje v obchodě s koblihami. Potřebujete způsob, jak dát zákazníkům, kteří se zapsali do vašeho e-mailového seznamu, vědět, kdy čerstvé koblihy vyjdou přímo z trouby.
Předpoklady
- Nainstalované soubory Node.js a npm
- Bezplatný účet SendGrid – zaregistrujte se zde
- Alespoň dvě e-mailové adresy, abyste mohli věci vyzkoušet a ujistit se, že fungují. Zde si můžete zaregistrovat (více) bezplatných adres Gmailu. Nebo můžete zkusit starý hack přidání + ke své stávající adrese Gmail. Upozornění:pomocí tohoto hacku jsme narazili na problémy s doručitelností.
Nastavení prostředí
Nejprve vytvořte klíč API z řídicího panelu SendGrid. Říkejme tomu „hromadný e-mail“.
Po kliknutí na „Vytvořit a zobrazit“ uvidíte svůj klíč. Než toto dialogové okno zavřete, uložte klíč do proměnné prostředí SENDGRID_API_KEY
. Z bezpečnostních důvodů nebudete moci znovu získat stejný klíč z řídicího panelu SendGrid.
Spusťte npm init
spustit nový projekt Node.js. Nainstalujte pomocnou knihovnu Sendgrid s npm install @sendgrid/mail
. Vytvořte soubor s názvem index.js
a otevřete jej ve zvoleném editoru.
Metoda 1:sendMultiple
Nejjednodušší způsob, jak posílat hromadné e-maily, je mít pole adres v to
a poté zavolejte sendMultiple
s jedním objektem zprávy.
Zkopírujte tento kód do index.js
a nahraďte e-maily v poli to svými e-mailovými adresami.
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: ['[email protected]', '[email protected]'], // replace these with your email addresses
from: 'Sadie Miller <[email protected]>',
subject: '🍩 Donuts, at the big donut 🍩',
text: 'Fresh donuts are out of the oven. Get them while they’re hot!',
html: '<p>Fresh donuts are out of the oven. Get them while they’re <em>hot!</em></p>',
};
sgMail.sendMultiple(msg).then(() => {
console.log('emails sent successfully!');
}).catch(error => {
console.log(error);
});
Spusťte kód spuštěním node index.js
z terminálu. Měli byste vidět výstup konzoly, který vás informuje o úspěšném spuštění skriptu, a sledovat, jak vám e-maily brzy dorazí do doručené pošty.
Aktuální limit rychlosti API je 1000 e-mailů na požadavek. Pokud má vaše vysoce výkonná, škálovatelná a chybám odolná prodejna koblih více zákazníků, budete se muset rozdělit do více požadavků.
Příjemci tohoto e-mailu si navzájem neuvidí své e-mailové adresy. Pokud chcete odeslat více e-mailových adres, ale ponechat adresy příjemců viditelné pro sebe, použijte stejný kód jako výše, ale nahraďte sgMail.sendMultiple
s sgMail.send
. To znamená, že buďte opatrní a neprozrazujte e-mailové adresy svých zákazníků, pokud pro to nemáte dobrý případ použití .
Metoda 2:personalizace
Pokud jste dobrý majitel obchodu s koblihami, věnovali jste pozornost svým zákazníkům. Všimli jste si, že Steven opravdu miluje koblihy s příchutí slaniny.
Pomocí personalizací můžete změnit e-maily, které posíláte svým zákazníkům, aby byly více, no, osobní. Jako když v předmětu zmíníte svůj oblíbený druh koblihy, aby je nalákal, aby přišli.
Nahraďte kód, který jste získali v index.js
s následujícím:
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
personalizations: [
{
to: '[email protected]', // replace this with your email address
subject: 'Did somebody say BACON DONUTS?? 🥓🥓🥓',
},
{
to: '[email protected]', // replace this with your email address
}
],
from: 'Sadie Miller <[email protected]>',
subject: '🍩 Donuts, at the big donut 🍩',
text: 'Fresh donuts are out of the oven. Get them while they’re hot!',
html: '<p>Fresh donuts are out of the oven. Get them while they’re <em>hot!</em></p>',
};
sgMail.send(msg).then(() => {
console.log('emails sent successfully!');
}).catch(error => {
console.log(error);
});
Spusťte node index.js
na příkazovém řádku a vyzkoušejte to.
Pokud pro konkrétního příjemce není dodán personalizovaný předmět, vrátíme se k výchozímu nastavení. Měli jste obdržet jeden e-mail s předmětem slaniny a jeden s obecným předmětem.
Rozhraní API pro přizpůsobení dokáže více než jen změnit předmět. Zde je seznam atributů, které lze aktuálně personalizovat:
subject
- předmět e-mailu.headers
- jakákoli záhlaví, která chcete odeslat s e-mailem.substitutions
– páry klíč/hodnota představující řetězce, které chcete nahradit do předmětu nebo těla e-mailu.custom_args
- jakékoli vlastní argumenty, které byste chtěli zahrnout do svého e-mailu, které přepíší substituce.send_at
– určuje konkrétní čas, kdy chcete, aby byl e-mail odeslán, ve formátu časového razítka Unix.
Metoda 3:pole objektů zpráv
Řada objektů zpráv je užitečná, pokud potřebujete odeslat více různých e-mailů s různými předměty, těly atd. různým příjemcům. .send
metoda také přijímá pole objektů e-mailových zpráv. Na rozdíl od použití pole adres v to
pole, níže uvedený kód nebude kopírovat příjemce.
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const messages = [
{
to: '[email protected]', // replace this with your email address
from: 'Sadie Miller <[email protected]>',
subject: 'We miss you 😭',
text: 'Get 10% off with coupon code NOMNOMNOM',
html: '<p>Get 10% off with coupon code <b>NOMNOMNOM</b></p>',
},
{
to: '[email protected]', // replace this with your email address
from: 'Lars Barriga <[email protected]>',
subject: 'NEW! Ube rolls 😻',
text: 'In addition to donuts, we are now selling ube rolls.',
html: '<p>In addition to donuts, we are now selling ube rolls.</p>',
},
];
sgMail.send(messages).then(() => {
console.log('emails sent successfully!');
}).catch(error => {
console.log(error);
});
Po spuštění tohoto kódu byste měli ve schránce vidět dva e-maily:
Co bude dál?
Pojďme si zopakovat, co jsme se dnes naučili:
- Jak odeslat jeden e-mail SendGrid více příjemcům
- Jak používat personalizace k přizpůsobení e-mailů více příjemcům
- Jak odeslat více různých e-mailů více různým příjemcům
Dejte si odměnu, zasloužili jste si ji. 🎉 Pokud teď máte chuť na koblihy, promiňte.
SendGrid API je tak plnohodnotné a flexibilní, že je nemožné vměstnat vše, co umí, do jednoho blogového příspěvku. Nejaktuálnější informace najdete v dokumentech. Můžete se také podívat na otevřený zdrojový kód pro pomocnou knihovnu Node.js, která je dostupná na GitHubu. Děkujeme za přečtení a přejeme příjemné zasílání e-mailů.