express使用Nodemailer发送邮件

文章参考

  1. Node.js使用Nodemailer发送邮件

问题来源

想开发一个“联系我们”的功能,也就是用户输入一些信息(文字和附件),最终以邮件的形式发给相关的管理员

解决办法

使用Nodemailer插件解决发送邮件的问题

Nodemailer介绍

Nodemailer 是一个简单易用的Node.js邮件发送组件

官网地址:https://nodemailer.com

GitHub地址:https://github.com/nodemailer/nodemailer

Nodemailer的主要特点包括:
  • 支持Unicode编码
  • 支持Window系统环境
  • 支持HTML内容和普通文本内容
  • 支持附件(传送大附件)
  • 支持HTML内容中嵌入图片
  • 支持SSL/STARTTLS安全的邮件发送
  • 支持内置的transport方法和其他插件实现的transport方法
  • 支持自定义插件处理消息
  • 支持XOAUTH2登录验证

安装

npm install nodemailer -D

  
  
  • 1

案例

const express = require("express");
const nodemailer = require("nodemailer");
const router = express.Router();

// 定义邮件服务器服,个人建议使用QQ邮箱,用Yeah(网易)邮箱配置出现各种问题
var transporter = nodemailer.createTransport({
host: ‘smtp.qq.com’,
service: ‘qq’,
secure: true,
// 我们需要登录到网页邮箱中,然后配置SMTP和POP3服务器的密码
auth: {
user: ‘************@qq.com’,
pass: ‘asdfghjk’
}
});

router.post(’/send’, function (req, res, next) {
// 获取前端传递过来的参数
var emailaddress = req.body.emailaddress;
var firstname = req.body.firstname;
var imgurl = req.body.imgurl;
var lastname = req.body.lastname;

<span class="token keyword">var</span> sendHtml <span class="token operator">=</span> <span class="token template-string"><span class="token string">`&lt;div&gt;
  &lt;div&gt;firstName : </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${<!-- --></span>firstname<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">&lt;/div&gt;
  &lt;div&gt;lastname : </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${<!-- --></span>lastname<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">&lt;/div&gt;
  &lt;div&gt;emailaddress : </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${<!-- --></span>emailaddress<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">&lt;/div&gt;
  &lt;div&gt;file : &lt;a href="</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${<!-- --></span>imgurl<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">"&gt;down upload file&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;`</span></span><span class="token punctuation">;</span>

<span class="token keyword">var</span> mailOptions <span class="token operator">=</span> <span class="token punctuation">{<!-- --></span>
    <span class="token comment">// 发送邮件的地址</span>
    <span class="token keyword">from</span><span class="token punctuation">:</span> <span class="token string">'**********@qq.com'</span><span class="token punctuation">,</span> <span class="token comment">// login user must equal to this user</span>
    <span class="token comment">// 接收邮件的地址</span>
    to<span class="token punctuation">:</span> <span class="token string">'**********@gmail.com'</span><span class="token punctuation">,</span>  <span class="token comment">// xrj0830@gmail.com</span>
    <span class="token comment">// 邮件主题</span>
    subject<span class="token punctuation">:</span> <span class="token string">'You have a new uploaded file'</span><span class="token punctuation">,</span>
    <span class="token comment">// 以HTML的格式显示,这样可以显示图片、链接、字体颜色等信息</span>
    html<span class="token punctuation">:</span> sendHtml
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token comment">// 发送邮件,并有回调函数</span>
transporter<span class="token punctuation">.</span><span class="token function">sendMail</span><span class="token punctuation">(</span>mailOptions<span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span>error<span class="token punctuation">,</span> info<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>error<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
        <span class="token keyword">return</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>error<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'Message sent: '</span> <span class="token operator">+</span> info<span class="token punctuation">.</span>response<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
res<span class="token punctuation">.</span><span class="token function">status</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token punctuation">{<!-- --></span>message<span class="token punctuation">:</span> req<span class="token punctuation">.</span>body<span class="token punctuation">.</span>firstname<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

});

转载:https://blog.csdn.net/hbiao68/article/details/84819706
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在自己的邮箱系统中创建一个邮箱账号,并且获取该账号的 SMTP 服务器地址、端口号、用户名和密码等信息。 接下来,你需要在 Express 项目中安装邮件送模块,比如 nodemailer。可以使用以下命令进行安装: ``` npm install nodemailer ``` 然后,你需要在 Express 项目中引入 nodemailer 模块,并且使用该模块创建一个邮件送器。示例代码如下: ``` const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ host: 'smtp.example.com', port: 587, secure: false, auth: { user: 'your_email@example.com', pass: 'your_email_password' } }); ``` 上面的代码中,我们使用nodemailer 的 createTransport 方法来创建了一个邮件送器。其中,host 和 port 分别指定了 SMTP 服务器的地址和端口号,auth 中的 user 和 pass 则分别指定了账号和密码。 接下来,你就可以使用邮件送器来发送邮件了。示例代码如下: ``` const mailOptions = { from: 'your_email@example.com', to: 'recipient_email@example.com', subject: 'Test Email', text: 'Hello, this is a test email!' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } }); ``` 上面的代码中,我们指定了件人、收件人、主题和内容等信息,并且使用 transporter.sendMail 方法来发送邮件。如果送成功,控制台将会输出 Email sent: OK。 注意,如果你的邮箱系统需要使用 SSL 或者 TLS 加密方式发送邮件,那么你需要在 createTransport 方法中将 secure 设置为 true,并且同时指定 SSL 或者 TLS 相关的选项。具体可以参考 nodemailer 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值