Nodejs 发送邮件 示例

本文介绍了前端使用Nodejs发送邮件的示例。因单纯用JavaScript发送邮件有局限,所以采用Nodejs。文中说明了准备工作,即安装nodemailer并引入。还分别阐述了用QQ邮箱和163邮箱发送邮件的配置步骤,两种方式配置类似,且经测试均可成功发送。
Nodejs 发送邮件 示例

前端使用nodejs发送邮件是一款不错的选择,当然需要配置node环境 —— nodejs 环境搭建及基本配置 ;在项目中,需要将数据发送到某个第三方平台的邮箱中,单单使用 javascript 是不能很好的适应我们的需求;但 javascript 可以通过 mailto 来发送邮件,只是它需要本地的支持,另一种通过 javascript 发送邮件的方式是只用于 ie浏览器,其它浏览器都不支持;下面是自己使用总结的发送邮件示例及可能出现的问题:

一、nodejs 发送邮件 —— 准备工作
  1. 在 node 环境下安装 nodemailer

    npm i nodemailer --save
    
  2. 在邮箱控制文件中引入;

    var nodemailer = require('nodemailer')
    
二、nodejs 发送邮件 —— QQ邮箱
  1. 确认将要使用的 QQ邮箱 IMAP/SMTP服务 是开启状态,并获取授权码;
    nodejs 发送qq邮件
    点击开启,根据步骤获取授权码;

  2. 在邮箱控制文件中配置,填入自己的邮箱账号和密码

    let transporter = nodemailer.createTransport({
        host: 'smtp.qq.com',
        port: 465,
        secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
        auth: {
            user: "*********@qq.com", // 发件人邮箱地址
            pass: "****************" // QQ授权码
        }
    });
    
  3. 在邮箱控制文件中配置,填写发件人、收件人

    let mailOptions = {
         from: '*********@qq.com', // 发件人地址
         // 收件人列表, 向163邮箱, 139邮箱, qq邮箱各发一封,中间使用逗号分隔
         to: '********@163.com, *************@139.com **********@qq.com',
         // 邮件主题
         subject: 'this is a test',
         // html内容
         html: '<div>Hello <h1>world</h1></div>',
         // 附件内容 是一个列表, 此处作了注释,可参考
         /*attachments: [{
             filename: 'data1.json',
             path: path.resolve(__dirname, 'data1.json')
         }, {
             filename: 'pic01.jpg',
             path: path.resolve(__dirname, 'pic01.jpg')
         }, {
             filename: 'test.txt',
             path: path.resolve(__dirname, 'test.txt')
         }],*/
     };
    
  4. 在邮箱控制文件中配置,发送邮件

    // 发送邮件
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        console.log("邮件发送成功!");
    });
    
     注意: 
     a. 文件变量名称的对应;
     b.一定要注意授权码,如果设置了授权码,请重启服务  
     c. 第二步填入邮箱和账号里面的 host 配置要注意,有些blog中写的是 QQ ,但经过自己测试不能成功
    
三、nodejs 发送邮件 —— 163邮箱
  1. 在邮箱控制文件中配置,填写邮箱地址和密码

    let transporter = nodemailer.createTransport({
        host: 'smtp.163.com',
        port: 465,
        secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
        auth: {
            user: "##########@163.com", // 发件人邮箱地址
            pass: "********" // 发件人邮箱登录密码
        }
    });
    
  2. 在邮箱控制文件中配置,填写发件人、收件人

      let mailOptions = {
          // 发件人地址
          from: '##########@163.com',
          // 收件人列表, 向163邮箱, 139邮箱, qq邮箱各发一封,中间使用逗号分隔
          to: '********@163.com, *************@139.com **********@qq.com',
          // 邮件主题
          subject: 'this is a test',
          // html内容
          html: '<div>Hello <h1>world</h1></div>',
          // 附件内容
    	   /*attachments: [{
    	        filename: 'data1.json',
    	        path: path.resolve(__dirname, 'data1.json')
    	    }, {
    	        filename: 'pic01.jpg',
    	        path: path.resolve(__dirname, 'pic01.jpg')
    	    }, {
    	        filename: 'test.txt',
    	        path: path.resolve(__dirname, 'test.txt')
    	    }],*/
      };
    
  3. 发送邮件 , 该步骤的内容同 qq邮箱 发送内容一样,故不再描述;

     注意: 
     	a. 文件变量名称的对应;
     	b.填写邮箱和账号里面的 host 配置要注意
    

以上两种发送邮件的方式,配置均类似,使用其它第三方平台发送邮件的方式配置也大同小异;本篇只做简单的示例展示,且亲自测试,均可成功发送邮件!
如有疑问可在评论区发言,共同叹讨学习! 抱拳!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值