当我们开发网站或者应用时,常常需要通过邮件来发送验证码、通知或者其他信息。Node.js提供了nodemailer模块来方便地实现邮件发送功能。
以下是实现nodemailer邮件发送的攻略:
1. 安装nodemailer
npm install nodemailer --save
2. 引入模块
const nodemailer = require('nodemailer');
3. 创建transporter对象
创建transporter对象是发送邮件的第一步。我们可以通过SMTP(简单邮件传输协议)或者其他方式来连接邮件服务器。
const transporter = nodemailer.createTransport({
host: 'smtp.ethereal.email',
port: 587,
auth: {
user: '<username>',
pass: '<password>'
}
});
以上是使用ethereal.email测试邮件发送的示例代码,其中<username>
和<password>
需要用实际的用户名和密码进行替换。也可以使用其他邮件服务器,例如Gmail,具体参数需要根据邮件服务器的要求来进行配置。
4. 创建邮件内容
const mailOptions = {
from: 'sender@example.com',
to: 'recipient@example.com',
subject: 'Testing nodemailer',
text: 'Hello world!'
};
以上代码示例创建了一个简单的邮件,包括发件人、收件人、主题和内容。当然,我们还可以使用其他邮件格式、模板等来定制邮件内容。
5. 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
以上代码将邮件内容发送给收件人,如果发送成功,控制台输出“Email sent:”以及邮件服务器返回的响应。
示例1:使用Gmail发送邮件
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '<username>',
pass: '<password>'
}
});
const mailOptions = {
from: 'sender@example.com',
to: 'recipient@example.com',
subject: 'Testing nodemailer with Gmail',
html: '<h1>Hello world!</h1>'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
以上代码示例使用Gmail服务来发送邮件,因此只需要提供Gmail的用户名和密码即可。
示例2:发送带附件的邮件
const mailOptions = {
from: 'sender@example.com',
to: 'recipient@example.com',
subject: 'Testing nodemailer with attachment',
html: '<h1>Hello world!</h1>',
attachments: [
{ filename: 'file1.txt', path: '/path/to/file1.txt' },
{ filename: 'file2.pdf', content: 'base64 encoded content' }
]
};
以上代码示例创建了一个包含两个附件的邮件,第一个附件是来自本地文件系统的文件,第二个附件是使用base64编码的文件内容。
至此,我们已经完成了使用nodemailer模块实现邮件发送的攻略,可以方便地在Node.js应用中发送邮件了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Node.js实现nodemailer邮件发送 - Python技术站