Преди да започнем…

GitHub: Вижте пълния код тук

Нека отделим малко време, за да прегледаме инструментите, които ще използваме:

NodeJS: Ще използваме това, за да изпълняваме JavaScript код на сървъра. Реших да използвам най-новата версия на Node, v12.16.3 към момента на писане.

„Express“:Според уебсайта им, Express е „Бърза, безкомпромисна, минималистична уеб рамка за Node.js“.

Nodemailer:Nodemailer е единичен модул с нулеви зависимости за Node.js, предназначен за изпращане на имейли.

Пощальон:Приложение за Chrome, което ще използваме, за да тестваме практически нашия API.

Да започваме!

Ако приемем, че вече сте инсталирали Node.js, създайте директория nodemailerDemo, за да съхранявате вашето приложение и да я направите своя работна директория.

Нека npm init преди да инсталираме нашите пакети!

$ npm init

Експресна настройка:

Инсталирайте Express и няколко от неговите зависимости

$ npm install -save express body-parser .

нека инсталираме nodemailer.

npm install nodemailer

След това отворете вашия package.json файл и създайте команда за стартиране на сървъра. Тази команда ще бъде създадена в секцията scripts. Редактирайте своя package.jsonв раздел scripts, както следва:

"scripts": {   
       "start": "node ./index.js",
       "test": "echo \"Error: no test specified\" && exit 1"
  }

Нека създадем нашия сървър

Добавете това към вашия файл index.js

const express = require("express");
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
const route = express.Router();
const port = process.env.PORT || 5000;
app.use('/v1', route);
app.listen(port, () => {
    console.log(`Server listening on port ${port}`);
});

Сега стартирайте приложението чрез командата по-долу.

$ npm start

Нашият сървър стартира на порт 5000.

Напред Във файла index.js се изисква nodemailer

var nodemailer = require('nodemailer');

nodemailer се нуждае от транспортна услуга, чрез която може да изпраща имейли. В този пример използвам Gmail.

пишете във вашия файл node.js

// create reusable transporter object using the default SMTP transport
const transporter = nodemailer.createTransport({
port: 465,               // true for 465, false for other ports
host: "smtp.gmail.com",
   auth: {
        user: '[email protected]',
        pass: 'password',
     },
secure: true,
});

Сега се нуждаем от втори конфигурационен обект, където ще конфигурираме нашите имейл данни.

const mailData = {
from: '[email protected]',  // sender address
  to: '[email protected]',   // list of receivers
  subject: 'Sending Email using Node.js',
  text: 'That was easy!'
  html: '<b>Hey there! </b>
         <br> This is our first message sent with Nodemailer<br/>',
};

Прикачени файлове в Nodemailer

Можем да добавяме прикачени файлове в Nodemailer, като използваме следните основни свойства:

// An array of attachments
        attachments: [
            {
                filename: 'text notes.txt',
                path: 'notes.txt
            },
         ]

Сега последният бит всъщност е изпращането на имейла, което можем да направим, като използваме метода sendMail, предоставен от транспортния обект, който създадохме по-горе.

transporter.sendMail(mailOptions, function (err, info) {
   if(err)
     console.log(err)
   else
     console.log(info);
});

sendMail приема два аргумента mailOptionsи функция за обратно извикване, която ще бъде извикана при изпращане на имейла. Функцията за обратно извикване ще бъде извикана, когато някой от имейлите е изпратен успешно или възникне грешка.

Преди да изпратите имейла си с помощта на Gmail, трябва да разрешите на незащитени приложения достъп до Gmail. Можете да направите това, като отидете в настройките на Gmail „тук“.

Ето как изпращаме имейли в node js с помощта на nodemailer и Gmail.

Примери за Nodemailer

Нека прегледаме и тестваме пълно съобщение, създадено с Nodemailer.

Пример 1. Първо, изпратете текстово съобщение с помощта на пощальон, Сега изпращаме до, тема, текст чрез заявка за поща на пощальон.

Току-що изпратихме успешно текстово съобщение.

Пример 2. Изпратете текстово писмо с прикачени изображения и текстови файлове

Току-що успешно изпратихме имейл с прикачени файлове с изображения и текстови файлове.

ЗАКЛЮЧЕНИЕ

Ние току-що успешно изпратихме имейл с помощта на noedemailer и express.js в нашето приложение.
Ако сте стигнали дотук, поздравления, ✌.
Разбира се, имате въпроси или проблеми, докато преминавате през този урок, любезно пуснете вашите коментари и ще получите отговор възможно най-скоро.
Още веднъж благодаря за четенето, пляскайте и споделяйте!👌

GitHub: Вижте пълния код тук