转自:https://blog.csdn.net/q36835109/article/details/53067917

注:由于本人使用最新版本的nodemailer不兼容,所以目前使用的是0.7.1版的nodemailer

下面展示的是使用QQ邮箱发送邮件的实例,如果你有其它需求,也可以更换成其他邮箱发送,如(163,gmail等)。

1.安装nodemailer

npm install nodemailer@0.7.1

2.调用

  1. var to = 'XXX@qq.com';        //收件地址
  2. var subject = '邮件标题';           //发送的标题
  3. var text = '文本内容';              //文本
  4. var html = '<h1>邮件内容</h1>';   //发送的内容
  5. var transporter = nodemailer.createTransport("SMTP", {
  6. host: "smtp.qq.com",        // 主机
  7. secureConnection : true,    // 使用 SSL
  8. port: 465,                  // SMTP 端口
  9. auth: {
  10. user: 'XXX@qq.com', //邮箱登录账号
  11. pass:'XXXXX' //使用QQ邮箱登录密码是不正确的,必须使用QQ邮箱里的授权码,这个请注意,底部有说明。
  12. }
  13. });
  14. var emailOptions = {
  15. from : 'XXX <XXXXX@qq.com>',
  16. to : to,
  17. subject : subject,
  18. text : text,
  19. html : html
  20. }
  21. transporter.sendMail(emailOptions, function(err, info) {
  22. if(err){
  23. return console.log(err);
  24. }else{
  25. console.log('Message sent: ' + info.message);
  26. }
  27. transporter.close(); // 如果没用,关闭连接池
  28. });

3.注意事项:

1.首先登录到QQ邮箱,点击左上角设置->账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务开启smtp服务,如下图显示

开启之后,点击‘生成授权码’(* 这个授权码是用来登录发送邮件的),如下图显示

获取完之后,如下图显示

2.提示535错误,如下图显示

原因:smtp服务器验证不通过

解决方案:密码要用授权码当密码

3.Error: 101057795,,如下图显示:

原因:端口不正确

解决方案:修改端口(578或25或465等)试试

4.Error: Greeting never received,如下图显示:

原因:没有使用ssl

解决方案:添加secureConnection:true

以上是本人在使用的时候遇到的问题,如果您们还遇到其他问题,可以评论把问题和解决方案写下,方便大家以后遇到相同问题时可以查看。。

54.nodejs nodemailer不兼容的更多相关文章

  1. nodejs & nodemailer

    nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...

  2. nodejs nodemailer中间件

    var stransporter = nodemailer.createTransport({ host:smtp-163.com', //适合163 secureConnection: true, ...

  3. nodejs nodemailer 使用

    index.js const nodemailer=require("nodemailer") let sendEmail=function () { var transporte ...

  4. Nodejs stream模块-翻译

    花了两天时间尝试按照自己的话翻译了一下stream模块,以下内容皆翻译于:https://nodejs.org/api/stream.html. 目录 1  Stream(流)     1.1     ...

  5. Nodejs课堂笔记-第三课 构建一个nodejs的Docker镜像

    本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 因为一直做Linux有关的开发工作,所以不习惯在Windows平台编译和测试 ...

  6. 必应API接口nodejs版

    近期,在研究百度.必应.API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList. 其中提到bing API提交方法,并给 ...

  7. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

    来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器. ...

  8. AngularJS-Uncaught Error: [$injector:modulerr]

    我在实验AngularJS-系统代码的配置和翻译的时候遇到了如下图所示的错误: 在JS编程的时候会经常遇到,XXX不是一个函数,XXX未定义等等错误,只要看到和自己编写的代码语句相关的东西直接找到就能 ...

  9. React native开发中常见的错误

    react native环境搭建请移步:react native环境搭建 这里说说react native创建完成之后,运行中出现的常见问题, 问题1: java.lang.RuntimeExcept ...

随机推荐

  1. POJ 2373 单调队列优化DP

    题意: 思路: f[i] = min(f[j]) + 1; 2 * a <= i - j <= 2 *b: i表示当前在第i个点.f[i]表示当前最少的线段个数 先是N^2的朴素DP(果断 ...

  2. js相关禁止

    遇到网页上有精美图片或者精彩文字想保存时,通常大家都是选中目标后按鼠标右键,在弹出菜单中选择“图片另存为”或“复制”来达到我们的目的.但是,目前有许多网页都屏蔽了鼠标右键,那么用js如何实现禁止鼠标右 ...

  3. plt.rcParams[]

    plt.rcParams[] pylot使用rc配置文件来自定义图形的各种默认属性,称之为rc配置或rc参数.通过rc参数可以修改默认的属性,包括窗体大小.每英寸的点数.线条宽度.颜色.样式.坐标轴. ...

  4. JAVA程序类加载及其反射机制

    [IT168 技术]当调用java命令运行某个Java程序时,该命令将启动一条Java虚拟机进程,同一个JVM的所有线程,所有变量都处于同一进程里,它们都是用该JVM进程的内存区. 程序运行到最后正常 ...

  5. WSGI和CGI

    https://www.zhihu.com/question/19998865 https://segmentfault.com/a/1190000003069785

  6. 高并发MYSQL如何优化处理?

    1)代码中sql语句优化 2)数据库字段优化,索引优化 3)加缓存,redis/memcache等 4)主从,读写分离 5)分区表 6)垂直拆分,解耦模块 7)水平切分

  7. 关于vue自定义事件中,传递参数的一点理解

    例如有如下场景 先熟悉一下Vue事件处理 <!-- 父组件 --> <template> <div> <!--我们想在这个dealName的方法中传递额外参数 ...

  8. 【转】 我的java web登录RSA加密

    [转] 我的java web登录RSA加密 之前一直没关注过web应用登录密码加密的问题,这两天用appscan扫描应用,最严重的问题就是这个了,提示我明文发送密码.这个的确很不安全,以前也大概想过, ...

  9. 火狐不支持innerText属性,只支持innerHTML属性

    做的一个js的小程序放到火狐上用不了了,原因是innerText不是标准属性,换成innerHTML属性就好,但是可能需要把html标签给去掉

  10. java 究竟老年代和年轻代的比例为多大合适呢?

    眼下我还没有这方面过多的经验,和切身体会 只是以我眼下的水平看来,年轻代不宜大,假设年轻代大会导致转为老年代的时候,老年代撑不下.导致full gc.回收停顿时间过长