当前仅显示指定条件回帖 [ 展开查看全部 ]
文件名称:
发送邮件封装.md
所在目录:
编程_自封装utils或组件整合笔记 / 自封装JavaScript工具包
文件大小:
3.09 KB
下载地址:
文本预览:
# #说明
>将收录邮件操作相关工具
>
>笔记分享:[hongjilin](https://gitee.com/hongjilin)
>
>`该函数需要用到Nodejs`
# 一、发送邮件简单工具 -`2020`
>该模块封装于2020疫情本人撰写 [nodejs+vue搭建校园疫情防控系统实战项目(全栈项目)](https://www.bilibili.com/video/BV1Z54y1y79p?share_source=copy_web)项目期间,主要用于项目中`发送邮件进行忘记密码验证`等功能
>
>发送邮件模块 [hongjilin](https://gitee.com/hongjilin) 2020年7月29日 当时编程习惯还不是很好,如类名命名规范等,可以自行更正
## Ⅰ-代码示例
>上面这几个参数取自己邮箱信息
>
>```js
>var nodemailer = require("nodemailer");
>var smtp = 'smtp.qq.com'
>var mailFrom = 'xxxxx@qq.com'
>var mailPwd = 'xxxzbwsqsbdbbx'
>/**
> * 发送邮件
> * @param email xxx@qq.com,yyy@qq.com,zzz@qq.com
> * @param subject 邮件的主题
> * @param text 发送纯文本邮件
> * @param html 发送富文本邮件
> * @param callback 执行完之后的回调函数
> * 回调函数有参数:json对象格式:
> * var result = {
> httpCode: 200,// 成功为200,失败为500
> message: '发送成功!',
> }
> */
>
>function emailTo(email,subject,text,html,callback) {
> var transporter = nodemailer.createTransport({
> host: smtp,
> auth: {
> user: mailFrom,
> pass: mailPwd //授权码,通过QQ获取
>
> }
> });
> var mailOptions = {
> from: mailFrom, // 发送者
> to: email, // 接受者,可以同时发送多个,以逗号隔开
> subject: subject, // 标题
> };
> if(text != undefined) mailOptions.text =text;// 文本
> if(html != undefined) mailOptions.html =html;// html
>
> var result = {
> httpCode: 200,
> message: '发送成功!',
> }
> try {
> transporter.sendMail(mailOptions, function (err, info) {
> if (err) {
> result.httpCode = 500;
> result.message = err;
> callback(result);
> return;
> }
> callback(result);
> });
> } catch (err) {
> result.httpCode = 500;
> result.message = err;
> callback(result);
> }
>
>}
>
>module.exports={emailTo}
>```
## Ⅱ-使用示例
>```js
>var express = require('express');
>var router = express.Router();
>const mail = require('../utils/mailUtil')
>
>router.post('/setEM', function (req, resp, next) {
> console.log('11111')
> // res.render('index1', {host:req.hots });
> // let u_id = localStorage.getItem("u_id");
> let body = req.body
> let emil = body.emil;
> let title = body.title;
> let content = body.content;
> let htmlCen = body.htmlCen;
> let call = body.call;
> let u_id = body.u_id;
> let token = jwtUtils.sign({u_id: u_id, emil: emil}, global.globalKey, 36000)
> let urldata = "http://localhost:3000/verify?token=" + token
> mail.emailTo(emil, "hjl博客验证", "请您点击进行邮箱绑定验证", urldata, function (a) {
> resp.send(a)
> })
>});
>
>module.exports = router;
>```
>将收录邮件操作相关工具
>
>笔记分享:[hongjilin](https://gitee.com/hongjilin)
>
>`该函数需要用到Nodejs`
# 一、发送邮件简单工具 -`2020`
>该模块封装于2020疫情本人撰写 [nodejs+vue搭建校园疫情防控系统实战项目(全栈项目)](https://www.bilibili.com/video/BV1Z54y1y79p?share_source=copy_web)项目期间,主要用于项目中`发送邮件进行忘记密码验证`等功能
>
>发送邮件模块 [hongjilin](https://gitee.com/hongjilin) 2020年7月29日 当时编程习惯还不是很好,如类名命名规范等,可以自行更正
## Ⅰ-代码示例
>上面这几个参数取自己邮箱信息
>
>```js
>var nodemailer = require("nodemailer");
>var smtp = 'smtp.qq.com'
>var mailFrom = 'xxxxx@qq.com'
>var mailPwd = 'xxxzbwsqsbdbbx'
>/**
> * 发送邮件
> * @param email xxx@qq.com,yyy@qq.com,zzz@qq.com
> * @param subject 邮件的主题
> * @param text 发送纯文本邮件
> * @param html 发送富文本邮件
> * @param callback 执行完之后的回调函数
> * 回调函数有参数:json对象格式:
> * var result = {
> httpCode: 200,// 成功为200,失败为500
> message: '发送成功!',
> }
> */
>
>function emailTo(email,subject,text,html,callback) {
> var transporter = nodemailer.createTransport({
> host: smtp,
> auth: {
> user: mailFrom,
> pass: mailPwd //授权码,通过QQ获取
>
> }
> });
> var mailOptions = {
> from: mailFrom, // 发送者
> to: email, // 接受者,可以同时发送多个,以逗号隔开
> subject: subject, // 标题
> };
> if(text != undefined) mailOptions.text =text;// 文本
> if(html != undefined) mailOptions.html =html;// html
>
> var result = {
> httpCode: 200,
> message: '发送成功!',
> }
> try {
> transporter.sendMail(mailOptions, function (err, info) {
> if (err) {
> result.httpCode = 500;
> result.message = err;
> callback(result);
> return;
> }
> callback(result);
> });
> } catch (err) {
> result.httpCode = 500;
> result.message = err;
> callback(result);
> }
>
>}
>
>module.exports={emailTo}
>```
## Ⅱ-使用示例
>```js
>var express = require('express');
>var router = express.Router();
>const mail = require('../utils/mailUtil')
>
>router.post('/setEM', function (req, resp, next) {
> console.log('11111')
> // res.render('index1', {host:req.hots });
> // let u_id = localStorage.getItem("u_id");
> let body = req.body
> let emil = body.emil;
> let title = body.title;
> let content = body.content;
> let htmlCen = body.htmlCen;
> let call = body.call;
> let u_id = body.u_id;
> let token = jwtUtils.sign({u_id: u_id, emil: emil}, global.globalKey, 36000)
> let urldata = "http://localhost:3000/verify?token=" + token
> mail.emailTo(emil, "hjl博客验证", "请您点击进行邮箱绑定验证", urldata, function (a) {
> resp.send(a)
> })
>});
>
>module.exports = router;
>```
点赞
回复
X