随着电子邮件的广泛应用,越来越多的应用程序需要能够发送电子邮件。Node.js 作为一种非常受欢迎的后端技术,能够提供非常好的邮件解决方案。NodeMailer 是一种非常好用的 Node.js 库,它提供了许多功能,可以方便的发送电子邮件,包括发送带有附件的电子邮件。
安装 NodeMailer
要在 Express.js 中使用 NodeMailer,首先需要安装 NodeMailer。可以使用 npm 进行安装。
npm install nodemailer
配置邮件信息
在发送电子邮件之前,需要配置 SMTP 信息,这里我们以 Gmail 为例。使用以下代码来配置邮件信息:
-- -------------------- ---- ------- ----- ---------- - ---------------------- --- ----------- - ---------------------------- -------- -------- ----- - ----- --------------------- ----- --------------------- - ---
不要忘记将 your_email_address
和 your_email_password
替换为您的 Gmail 邮箱地址和登录密码。
发送邮件
现在可以使用 NodeMailer 来发送电子邮件。以下是一段示例代码,其中将会发送带有附件的电子邮件:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ---------- - ---------------------- ----- ---- - ---------------- ---------------------- ----- ---- -- - --- ----------- - ---------------------------- -------- -------- ----- - ----- --------------------- ----- --------------------- - --- --- ----------- - - ----- --------------------- --- ------------------------ -------- -------- ----- ---- ---------- ----- --------- ----- ------- ---- --- -------- ------- ------------ - - --------- ----------- ----- -------------------- ----------- - - -- --------------------------------- --------------- ----- - -- ------- - ------------------- --------------- ------- --------- ------- - ------------------ ----- - - --------------- --------------- ---- --------------- --- --- ---------------- -- -- ------------------- ------- -- ---- --------
在上面的代码中,我们使用 Express.js 创建了一个路由来发送电子邮件。通过 GET 请求 /send-email
,发送以下邮件信息:
- From:发送邮件的 Gmail 邮箱地址。
- To:接收方的电子邮件地址。
- Subject:电子邮件的主题。
- Text:电子邮件的正文。
- Attachments:带有一个附件,自定义文件名为 test.txt。
如上述代码所示,通过 nodemailer.createTransport
创建传输器对象,然后调用 transporter.sendMail
方法来发送电子邮件。
如果电子邮件发送成功,则会在控制台中输出 "Email sent: " + info.response
,并向发送请求的客户端发送成功的响应;否则,输出错误并向客户端发送错误响应。
总结
将 NodeMailer 与 Express.js 应用程序结合使用可以方便地发送电子邮件,并且发送带附件的电子邮件同样简单。本文提供的示例代码可供参考并作为一种通用的 Node.js 解决方案,请根据您的实际需求进行修改或定制化。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a3fb0448841e989406c0c3