本文概述
- 要求
- 使用Gmail帐户发送
- 使用Zoho帐户发送
- 使用Outlook(或Hotmail)帐户发送
- Node.js 0.10+, 没有使用会破坏你的生产应用程序的ES6恶作剧。
- Unicode可使用任何字符, 包括完整的表情符号支持。
- Windows –你可以像其他任何模块一样在Windows上使用npm安装它, 没有编译的依赖项。从Azure或Windows轻松使用它。
- HTML内容以及纯文本替代。
- 附件(包括用于发送较大文件的附件流)。
- HTML中的嵌入式图像。
- 使用SSL / STARTTLS的安全电子邮件传递。
- 使用内置的SMTP传输或通过外部插件使用不同的传输方法。
- 用于处理消息的自定义插件支持(添加DKIM签名, 使用markdown内容而不是HTML等)。
- 具有自动访问令牌生成功能的Sane XOAUTH2登录(以及有关更新令牌的反馈)。
- 使用节点电子邮件模板或自定义渲染器的简单内置模板。
- SMTP连接(SOCKS, HTTP和自定义连接)的代理。
npm install nodemailer
你可以访问nodemailer的Github官方存储库以获取更多信息, 或者在此处访问NPM中的软件包站点。下载后, 你可以使用” require(‘ nodemailer’ )” 来要求该模块。
使用Gmail帐户发送Google使用SSL加密和端口465。
注意:要使用Gmail, 你可能需要在Gmail帐户中配置” 允许安全程度较低的应用程序” , 除非你使用的是2FA, 在这种情况下, 你必须创建” 应用程序专用” 密码。你可能还需要使用” 允许访问你的Google帐户” 来解锁你的帐户才能使用SMTP。
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Gmail// change the user and pass !var transporter = nodemailer.createTransport({host: 'smtp.gmail.com', port: 465, secure: true, // use SSLauth: {user: 'myemail@gmail.com', pass: 'myPassword'}});
// setup e-mail datavar mailOptions = {from: '"Our Code World " <
myemail@gmail.com>
', // sender address (who sends)to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)subject: 'Hello', // Subject linetext: 'Hello world ', // plaintext bodyhtml: '<
b>
Hello world <
/b>
<
br>
This is the first email sent with Nodemailer in Node.js' // html body};
// send mail with defined transport objecttransporter.sendMail(mailOptions, function(error, info){if(error){return console.log(error);
}console.log('Message sent: ' + info.response);
});
使用Zoho帐户发送Zoho邮件使用SSL加密和端口465, 与Gmail相同。
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Gmail// change the user and pass !var transporter = nodemailer.createTransport({host: 'smtp.zoho.com', port: 465, secure: true, // use SSLauth: {user: 'myzoho@zoho.com', pass: 'myPassword'}});
// setup e-mail data, even with unicode symbolsvar mailOptions = {from: '"Our Code World " <
myzoho@zoho.com>
', // sender address (who sends)to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)subject: 'Hello ', // Subject linetext: 'Hello world ', // plaintext bodyhtml: '<
b>
Hello world <
/b>
<
br>
This is the first email sent with Nodemailer in Node.js' // html body};
// send mail with defined transport objecttransporter.sendMail(mailOptions, function(error, info){if(error){return console.log(error);
}console.log('Message sent: ' + info.response);
});
使用Outlook(或Hotmail)帐户发送与Gmail或Zoho不同, Outlook在端口587中使用TLS加密。在这种情况下, 我们需要禁用默认的安全连接以使用SSLv3加密启用TLS。
var nodemailer = require('nodemailer');
// Create the transporter with the required configuration for Outlook// change the user and pass !var transporter = nodemailer.createTransport({host: "smtp-mail.outlook.com", // hostnamesecureConnection: false, // TLS requires secureConnection to be falseport: 587, // port for secure SMTPtls: {ciphers:'SSLv3'}, auth: {user: 'mymail@outlook.com', pass: 'myPassword'}});
// setup e-mail data, even with unicode symbolsvar mailOptions = {from: '"Our Code World " <
mymail@outlook.com>
', // sender address (who sends)to: 'mymail@mail.com, mymail2@mail.com', // list of receivers (who receives)subject: 'Hello ', // Subject linetext: 'Hello world ', // plaintext bodyhtml: '<
b>
Hello world <
/b>
<
br>
This is the first email sent with Nodemailer in Node.js' // html body};
// send mail with defined transport objecttransporter.sendMail(mailOptions, function(error, info){if(error){return console.log(error);
}console.log('Message sent: ' + info.response);
});
或者, 如果你的帐户是hotmail而不是Outlook, 则可以通过以下传输方式使用内置hotmail服务:
var transport = nodemailer.createTransport("SMTP", {service: "hotmail", auth: {user: "user@hotmail.com", pass: "password"}});
【如何在Node.js中使用nodemailer发送电子邮件(gmail,Outlook和Zoho)】玩得开心 !
推荐阅读
- CRM如何提高IT公司的利率
- 最新的Zoom安全漏洞(你需要了解的内容)
- 地理编码将如何塑造未来的技术和服务
- 使你的网站闪电般飞速的10条性能提示
- 详解Apache Dubbo的SPI实现机制
- Kubernetes + Spring Cloud 集成链路追踪 SkyWalking
- 如何用C++自己实现mysql数据库的连接池()
- 超值分享为何写服务器程序需要自己管理内存,从改造std::string字符串操作说起。。。
- 一次 RocketMQ 顺序消费延迟的问题定位