Odesílání hromadných e-mailů 3 způsoby s Twilio SendGrid a Node.js

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ů.