Преди да започнем…
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: Вижте пълния код тук