📅  最后修改于: 2023-12-03 15:23:34.974000             🧑  作者: Mango
在某些情况下,我们需要在没有密码的节点 js 中发送邮件,例如在浏览器端发送邮件等情况。我们可以使用第三方服务来实现这个功能。本文将介绍如何使用 Nodemailer 通过 Gmail 服务在没有密码的节点 js 中发送邮件。
npm install nodemailer --save
要发送邮件,我们需要配置 Gmail 服务,以便 Nodemailer 可以在我们的帐户中使用。在 Google 帐户的 安全性 页面下,我们需要启用“低安全性应用程序访问”。
const nodemailer = require('nodemailer');
async function sendEmail() {
try {
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'yourgmailusername@gmail.com',
pass: 'yourgmailpassword'
}
});
let info = await transporter.sendMail({
from: '"Your Name" <yourgmailusername@gmail.com>',
to: 'recipient@example.com',
subject: 'Test email',
text: 'This is a test email sent from an app using Nodemailer.'
});
console.log('Message sent: %s', info.messageId);
} catch (error) {
console.log(error);
}
}
sendEmail();
在上面的示例中,我们通过 Gmail 服务配置了一个传输器并使用帐户凭据进行身份验证。然后,我们使用 transporter.sendMail()
方法来发送邮件。最后,我们将控制台记录记录为发送信息。
为了不在代码中明文存储凭据,我们可以使用环境变量来存储它们。
const nodemailer = require('nodemailer');
require('dotenv').config();
async function sendEmail() {
try {
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.GMAIL_USERNAME,
pass: process.env.GMAIL_PASSWORD
}
});
let info = await transporter.sendMail({
from: '"Your Name" <yourgmailusername@gmail.com>',
to: 'recipient@example.com',
subject: 'Test email',
text: 'This is a test email sent from an app using Nodemailer.'
});
console.log('Message sent: %s', info.messageId);
} catch (error) {
console.log(error);
}
}
sendEmail();
在上面的示例中,我们使用 require('dotenv').config()
加载环境变量。然后,我们使用 process.env
对象从环境中读取帐户凭据。
通过使用 Nodemailer,我们可以在没有密码的节点 js 中发送电子邮件。通过此文,您已经了解到如何使用 Gmail 服务来发送电子邮件。如果您使用的是其他电子邮件提供程序,请调整代码中的 service
和 auth
配置。