【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版权协议,转载请附上原文出处链接和本声明。