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