Node.js模块nodemailer基本使用攻略
什么是nodemailer
nodemailer 是一个简单易用的 Node.js 的发送邮件模块。nodemailer 可以用来发送电子邮件,支持从网站上的表单发送。它可以安装在命令行中,并且能够通过 API 构建出发送电子邮件的 Node.js 应用程序。
安装nodemailer
通过npm安装nodemailer:
npm install nodemailer --save
使用nodemailer
首先需要引入nodemailer:
const nodemailer = require('nodemailer');
快速开始
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'youremail@gmail.com',
pass: 'yourpassword'
}
});
let mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
text: 'That was easy!'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
上面的代码通过Gmail发送电子邮件,邮件内容为文本。其中,from
用于指定发送电子邮件的发件人邮箱,to
指定收件人的邮箱地址,subject
指定电子邮件的主题,text
是电子邮件的文本内容。
发送HTML内容
nodemailer也支持发送HTML内容的电子邮件。在构建mailOptions
对象时,将text
修改为html
,将电子邮件内容作为HTML代码发送。例如:
let mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
html: '<h1>Welcome</h1><p>That was easy!</p>'
};
支持附件
nodemailer还支持将文件作为电子邮件的附件发送。在创建附件时,可以指定附件的名称、类型等信息。例如:
let mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
html: '<h1>Welcome</h1><p>That was easy!</p>',
attachments: [
{
filename: 'image.png',
path: '/path/to/image.png'
},
{
filename: 'pdf.pdf',
path: '/path/to/pdf.pdf'
}
]
};
在上面的代码中,我们添加了两个附件,一个是 image.png
图像文件,另一个是 pdf.pdf
PDF文件。在附件对象中,filename
指定了附件的文件名,path
指定了附件的本地路径。
总结
以上是使用 nodemailer 发送电子邮件的基本使用攻略,包括发送文本、html内容、以及带附件的邮件。nodemailer还支持更多功能,如发送适用于多语言的内容和混合类型的电子邮件等。
示例
例1:使用QQ邮箱发送邮件
const nodemailer = require('nodemailer');
// 创建传输器
let transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
port: 465,
secure: true,
auth: {
user: '606672726@qq.com',
pass: 'yourpassword'
}
});
// 设置电子邮件内容
let mailOptions = {
from: '606672726@qq.com',
to: 'receiver@example.com',
subject: 'Sending Email using Node.js',
html: '<h1>Welcome</h1><p>That was easy!</p>'
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
例2:发送带附件的邮件
const nodemailer = require('nodemailer');
// 创建传输器
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'youremail@gmail.com',
pass: 'yourpassword'
}
});
// 设置电子邮件内容
let mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
html: '<h1>Welcome</h1><p>That was easy!</p>',
attachments: [
{
filename: 'image.png',
path: '/path/to/image.png'
},
{
filename: 'pdf.pdf',
path: '/path/to/pdf.pdf'
}
]
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs模块nodemailer基本使用-邮件发送示例(支持附件) - Python技术站