node环境下邮件发送

【Node.js】关于邮件轰炸器的代码

单次发送邮件的代码:

/*
邮件轰炸器  每隔1s发送一条邮件
通过第三方模块发送邮件 nodemailer 在npm官网上下载
*/

//引入第三方模块  在终端安装nodemailer,最好与package.json文件同一目录下
const nodemailer = require("nodemailer");
//创建发送邮件对象 以QQ邮箱为例
let transporter = nodemailer.createTransport({
    host: "smtp.qq.com",       //打开node_module/nodemailer/lib/well-known/services.json查询各运营商的host等信息
    port: 465,
    secure: true, // true for 465, false for other ports
    auth: {
        user: '*********@qq.com', // 发送方邮箱账号
        pass: '***********' // 邮箱的授权码 在扣扣邮箱设置/账户中开启并获取
    }
});

// 邮件的内容
let content ={
    from: '"Fred Foo ?" <********@qq.com>', // 发送方账号
    to: "********@qq.com, ********@qq.com", // 接收方账号,多个就用“,”隔开
    subject: "Hello Dog哥", // 标题
    text: "猜一猜,我是谁?爱你呦", // 发送的内容txt格式,也可以是html格式,二选其一
    // html: "<b>Hello world?</b>" // html格式内容
};

//调用sendMail方法发送   可以在这步加for循环或者加个定时器,可以实现轰炸的效果,但要承担可能被封邮箱的风险
transporter.sendMail(content,(err)=>{
    console.log(err)
})

封装版的代码:

/*
封装一个发送邮件的模块
调用通过传递参数的方式 来到达到简化调用

*/ 
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
    service: 'qq', // 运营商  qq邮箱 网易// 
    port: 465,
    secure: true, 
    auth: {
        user:'xxxxx@qq.com', //发送方的邮箱
        pass: 'tnqvwdwwxizfbjdh' // pop3 授权码
    }
});

let mail={
	transporter:transporter,
	send(mail,content){
      let mailOptions = {
		    from: '"Fred Foo ?" <xxxxx@qq.com>', // sender address
		    to: mail, // list of receivers
		    subject: '欢迎注册 ✔', // Subject line
		    text: content, // plain text body
		    html: content // html body
		};

	 //发送
	 this.transporter.sendMail(mailOptions, (error, info) => {
	    if (error) {
	        return console.log(error);
	    }
	    console.log('Message sent: %s', info.messageId);
			});
	}
}
module.exports=mail

另开一个js文件,用来调用,注意加载路径问题:

const mail=require('./mail.js')
mail.send('xxxx@qq.com','这是发送的内容')

版权声明:本文为Meuan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。