SendGrid*

SendGrid este unul dintre cele mai populare servicii pentru expedierea mail-urilor în Cloud. Este rapid, sigur, ușor de configurat, integrat și folosit și are o ofertă gratuită mai mult decât suficientă pentru nevoile acestui demo.

  • Treceți prin procesul de creare a unui cont SendGrid (default options, nothing fancy) și verificați-vă contul

  • Generați un API Key (din dashboard -> Click Settings -> API Key -> Create API Key -> Give it a name -> Full Access -> Create and View). Dacă nu vă descurcați (interfața nu e chiar user-friendly), urmăriți video-ul de aici.

  • Introduceți API Key-ul în fișierul .env al proiectului asociat Back-end-ului

// .env
SENDGRID_API_KEY= ...

ATENȚIE! API key-ul general este SECRET, nu trebuie să fie distribuit / publicat. De asemenea, așa cum vă atenționează și platforma, este afișat o singură dată, așa că este indicat să îl salvați într-un loc sigur înainte să închideți pagina.

  • În proiectul asociat Back-end-ului vom instala pachetul mail din sendgrid

npm install @sendgrid/mail
  • Pentru a păstra codul cât mai curat, vom crea un nou fișier numit mailFunctions.js în folderul utils în care vom defini logica specifică trimiterii de mail-uri

// mailFunctions.js
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const dotenv = require("dotenv");
dotenv.config();

const sendMail = (receiver, sender, subject, msg) => {
  const msgToSend = {
    to: receiver,
    from: sender,
    subject: subject,
    text: msg,
    //html: "...",
  };

  sgMail
    .send(msgToSend)
    .then((response) => {
      console.log(response[0].statusCode);
      return response[0].statusCode;
    })
    .catch((error) => {
      console.error(error);
    });
};

module.exports = {
    sendMail,
}
  • Putem testa trimiterea cu succes a mail-urilor importând si apelând metoda sendMail(...) din index.js. Atenție! Dacă folosiți nodemon, index.js și implicit funcția sendMail pe care o testăm vor fi rulate din nou la fiecare nou save. Comentați / stergeți funcția după ce ați testat-o cu succes pentru a evita spam-ul

// index.js
const {sendMail} = require("./utils/mailFunctions.js");
sendMail([adresapersonala], [adresapersonala], "TestSubject", "TestMessage");

Last updated