(1)创建node.js项目。
mkdir nodejs-nodemailer && cd nodejs-nodemailer
(2)创建package.json文件。并在文件中加入以下内容:
{
"name": "nodejs-nodemailer",
"version": "0.0.1",
"private": true,
"description": "nodejs-nodemailer",
"keywords": [
"email"
],
"author": "dufu",
"dependencies": {
"nodemailer": "~1.2.1"
}
}
(3)输入命令如下命令,项目创建完成。
npm install
(4)创建email.js文件,加入以下内容:
var nodemailer = require('nodemailer');
//发件人的邮箱
var userAddress = '15208325491@163.com';
//发件人的邮箱密码
var userPassword = 'password';
var transporter = nodemailer.createTransport({
service: '163',
auth: {
user: userAddress,
pass: userPassword
}
});
var mailOptions = {
from: userAddress, // sender address
to: 'xxxxxxxxx@qq.com', // list of receivers
subject: 'Test', // Subject line
text: 'Hello world', // plaintext body
html: '<b>Great send mail success</b>' // html body
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
}else{
console.log('Message sent: ' + info.response);
}
});
(6)注意这里使用的是163邮箱,node.js没有对163邮箱进行配置,所以要在services.json文件中手动添加163邮箱的配置,service.json的文件地址:
nodejs-nodemailer\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\nodemailer-wellknown
打开services.json文件,在文件末尾加入以下内容:
"163": {
"host": "smtp.163.com",
"port": 465,
"secure": true
}
(7)现在可以运行了,执行命令: node email.js
看到以下内容表示邮件发送成功:
QQ邮箱收到了邮件:
*为什么不使用QQ邮箱发送邮件?因为QQ邮箱要打开smtp服务,我的QQ邮箱在打开smtp的时候验证密保问题失败了,所以无法打开服务而且即使打开成功,也可能因为长时间未使用QQ邮箱,程序在运行的时候会提示初始化验证失败。但是163邮箱没有此类问题,而且它的smtp服务是默认打开的。如果要使用QQ邮箱来发送邮件的话,不必修改services.json文件,只需要把email.js中的 service: '163' 改成 service: 'QQ'就可以了。