如何在 Node.js 中使用 nodemailer 发送附件和电子邮件?
为此,我们将使用一个名为nodemailer的包。这是一个使电子邮件发送变得非常容易的模块。要使用它,您需要使用以下命令进行安装:
$ npm install nodemailer
nodemailer模块的特点:
- 它具有零依赖性和高度安全性。
- 无论是 Azure 还是 Windows 盒子,您都可以轻松使用它。
- 它还带有用于处理消息的自定义插件支持。
为了发送电子邮件,创建一个名为index.js的文件并记下以下代码:
文件名:index.js
javascript
var nodemailer = require("nodemailer");
var sender = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'username@gmail.com',
pass: 'your_password'
}
});
var mail = {
from: "username@gmail.com",
to: "receiver's_username@gmail.com",
subject: "Sending Email using Node.js",
text: "That was easy!"
};
sender.sendMail(mail, function(error, info) {
if (error) {
console.log(error);
} else {
console.log("Email sent successfully: "
+ info.response);
}
});
javascript
var nodemailer = require("nodemailer");
var sender = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'username@gmail.com',
pass: 'your_password'
}
});
var mail = {
from: 'username@gmail.com',
to:
'first_username@gmail.com, second_username@gmail.com',
subject: 'Sending Email using Node.js',
text: 'That was easy!',
html:
"GeeksforGeeks
I love geeksforgeeks
",
attachments: [
{
filename: 'mailtrap.png',
path: __dirname + '/mailtrap.png',
cid: 'uniq-mailtrap.png'
}
]
};
sender.sendMail(mail, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent successfully: '
+ info.response);
}
});
运行此程序的步骤:为了运行此文件,只需将 Git Bash 放入您的工作目录并键入以下命令:
$ nodemon index.js
如果您没有安装 nodemon,则只需运行以下命令:
$ node index.js
要仔细检查它的工作,您可以转到收件人的邮件,您将收到以下邮件,如下所示:
如果您有多个接收器怎么办?
那么在这种情况下,只需在您的邮件函数中添加以下代码:
to: 'first_username@gmail.com, second_username@gmail.com'
如果您想向接收方发送 HTML 格式的文本怎么办?
那么在这种情况下,只需在您的邮件函数中添加以下代码:
html: "GeeksforGeeks
I love geeksforgeeks
"
如果你想向接收者发送附件怎么办?
那么在这种情况下,只需在您的邮件函数中添加以下代码:
attachments: [
{
filename: 'mailtrap.png',
path: __dirname + '/mailtrap.png',
cid: 'uniq-mailtrap.png'
}
]
最终的index.js文件如下所示:
文件名:index.js
javascript
var nodemailer = require("nodemailer");
var sender = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'username@gmail.com',
pass: 'your_password'
}
});
var mail = {
from: 'username@gmail.com',
to:
'first_username@gmail.com, second_username@gmail.com',
subject: 'Sending Email using Node.js',
text: 'That was easy!',
html:
"GeeksforGeeks
I love geeksforgeeks
",
attachments: [
{
filename: 'mailtrap.png',
path: __dirname + '/mailtrap.png',
cid: 'uniq-mailtrap.png'
}
]
};
sender.sendMail(mail, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent successfully: '
+ info.response);
}
});