文章参考
问题来源
想开发一个“联系我们”的功能,也就是用户输入一些信息(文字和附件),最终以邮件的形式发给相关的管理员
解决办法
使用Nodemailer插件解决发送邮件的问题
Nodemailer介绍
Nodemailer 是一个简单易用的Node.js邮件发送组件
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">`<div>
<div>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"></div>
<div>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"></div>
<div>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"></div>
<div>file : <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">">down upload file</a> </div>
</div>`</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">// [email protected]</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