前提需先安装 nodemailer 模块,执行下面的命令

npm install nodemailer -s

首先我有一个配置文件 conf.js

module.exports = {url:'mongodb://localhost:27017',//数据库地址secretOrPrivateKey:'xxxxx',//签名dbName:'xxxxx',//数据库名port:8000,//端口email:{ //邮箱配置host:"smtp.163.com",//邮箱服务器  这里我用的163邮箱port:465,//邮箱使用端口secure:true,//是否使用默认的465端口user:"xxx@163.com", // 发送邮件方邮箱(主人邮箱)pass:"", // 发送邮件方授权码}
}

然后我有一个 common.js 封装了邮件发送

'use strict';
const nodemailer = require('nodemailer');
const { email } = require('./conf');let { host,port,secure,user,pass } = email;// 配置邮箱服务器参数
let transporter = nodemailer.createTransport({host: host,port: port,secure: secure,auth: {user: user,pass: pass}
});/*向外暴露模块*/
module.exports = {sendMail:sendMail
}/*
* option{
*   from 从何处发送 默认主人邮箱
*   to 发往何处 必填
*   subjec 标题 必填
*   text 文本消息 与html必填其一
*   html html消息 与text必填其一
* }
*/
function sendMail (option,callback){let from,to,subject,text,html;from = option.from ? option.from : user;to = option.to;subject = option.subject;text = option.text ? option.text : '';html = option.html ? option.html : '';// 邮件发送参数let mailOptions = {from: `别名<${from}>`, // 发送邮件方邮箱to: to, // 接收邮件方邮箱subject: subject, // 标题text: text, // 内容html: html // html内容};return new Promise((resolve,reject) => {if(!to){reject(callback({code:0,msg:'接收方邮箱未填写'}))return false;}if(!subject){reject(callback({code:0,msg:'邮件标题必填'}))return false;}if(!(text || html)){reject(callback({code:0,msg:'文本格式或HTML格式必选其一'}))return false;}nodemailer.createTestAccount((err, account) => {// 发送邮件transporter.sendMail(mailOptions, (error, info) => {if (error) {reject(callback({code:0,msg:"邮件发送失败",err:error}))}else{resolve(callback({code:1,msg:"邮件发送成功",data:info}))}//console.log('Message sent: %s', info.messageId);// Preview only available when sending through an Ethereal account//console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...});})}).catch(err => console.log(err))
}

最后就是怎样使用

let option = {to:"xxx@xxx.com",//发送给谁subject:"xxx",//标题text:"xxx",//发送的内容
}
sendMail(option,result => {if(result.code == 0){res.json(result)}else{//执行业务逻辑}
})

如遇到如下报错

解决办法:

  1. 打开你的163邮箱设置开始pop和smtp
  2. 重新生成授权码,node的conf里面的pass填写授权码

如果还是没有解决

请检查 邮箱授权码 是否正确


前端交流群: 1063233592 (Vue交流群,react交流群,Uni-app交流群。。。前端技术栈交流群)

个人网站:点击这里进入(http://xueshuai.top)

Nodejs发送邮箱,nodejs怎样发送给163邮箱,nodemailer模块,发送邮箱错误代码535相关推荐

  1. 使用python自动发邮件(163、QQ、outlook邮箱)

    import smtplib from email.mime.text import MIMEText from email.utils import formataddr from datetime ...

  2. python自动发outlook邮件_使用python自动发邮件(163、QQ、outlook邮箱)

    import smtplib fromemail.mime.text import MIMEText fromemail.utils import formataddr fromdatetime im ...

  3. qq邮箱中的发件服务器是什么格式,qq邮箱的SMTP服务器是什么

    qq邮箱的SMTP服务器是什么 QQ邮箱POP3 和 SMTP 服务器地址设置如下: POP3服务器地址为"pop.qq.com",SMTP服务器地址为"smtp.qq. ...

  4. 163VIP邮箱发邮件,163VIP邮箱年费多少,163邮箱手机端在哪?

    163VIP邮箱发邮件,163VIP邮箱年费多少,163邮箱手机端在哪,关于163邮箱的相关小常识,今天给大家做一个全面分享吧! 关于163VIP邮箱年费 首先,如果你是长期使用可以一次性多续几年,这 ...

  5. 网易邮箱大师 代收/发 Gmail 邮件教程

    摘自 https://laod.cn/hosts/wangyiyouxiangdashi-gmail.html 一.第一部 下载网易邮箱大师 http://mail.163.com/dashi/ 点击 ...

  6. 关于Outlook接收Python email模块发送携带中文名附件乱码或变成.dat解决办法

    前言 由于近期在整理发送网络邮件,在使用Python3的email模块发送携带中文附件是,发现Outlook接收到的邮件是乱码,并且后缀变成了.dat,通过网上搜索找到了解决方式,解决方式如下: 解决 ...

  7. 163邮箱发送不出去服务器,我是网易163的免费邮箱,最近发现不能发邮件了,不知怎么回事,请热水人帮一下。...

    我是网易163的免费邮箱,最近发现不能发邮件了,不知怎么回事,请热水人帮一下.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下 ...

  8. SMTP-POP3协议简介以及使用Telnet客户端收/发邮件(163邮箱)

    每篇一句: It is not our abilities that show what we truly are, it is our choices. SMTP-POP3协议简介: SMTP: 简 ...

  9. 往邮箱里发python怎么发_Python 超简单的邮件发送方法

    在训练网络模型的时候,往往需要好几个小时,甚至十几个小时,由于时间不固定,所以有时候我去查看了好几次都没训练完,有时候训练结束很久了我才想起去看,所以我就想训练结束后自动给我发个邮件,这样我就可以专心 ...

最新文章

  1. 2022-2028年中国盲盒产业研究及前瞻分析报告
  2. idea添加database插件_IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理......
  3. CSS浏览器兼容性问题详解总结
  4. groovy怎样从sql语句中截取表名_Mysql和SQL
  5. linux环型共享内存,Linux system v 共享内存
  6. 渗透测试入门24之渗透测试参考书、课程、工具、认证
  7. 7-69 计算圆周率 (15 分)
  8. 关于SQL Server对于表的一些查询
  9. asp.net实现bt和pt—tracker request
  10. Python 2.7.9 Demo - 015.元组的定义、取值、遍历
  11. java 文件工具类_java文件工具类,文件的一些基本操作
  12. Linux sogou input method
  13. Web渗透测试学习路线图
  14. FrameTime、FPS、流畅度、Jank
  15. 一些在线图片处理工具收集
  16. 年轻人的996,马爸爸们的人血馒头与血汗工厂的历史宿命
  17. Java+阿里云手机验证码发送和验证
  18. windows 多开微信
  19. python+scapy实现ARP欺骗
  20. HBuilder 使用教程

热门文章

  1. aide打开html文件,AIDE Web(网页编辑器)
  2. np.random.choice()函数用法
  3. Java练习题-龟兔赛跑
  4. 满清才子纳兰性德的几首好词
  5. HHUOJ 1818 More is better
  6. 如何使用CC协议声明
  7. 强大的魔兽改键--可以像11对战平台一样,自动进入BN!支持命令改键;
  8. AliAGC 自动增益控制算法:解决复杂场景下的音量问题
  9. linux下编译安装ntfs,内核编译安装 (用NTFS模块)
  10. 使用计算机报点系统时填记,铁路 车务 运转系统 自动闭塞《接发列车作业标准》...