注* 你无法通过此功能自动群发垃圾邮件,一般大型邮件服务商对发送次数和间隔有限制,数量过大被会屏蔽,请紧慎使用。
简介
Nodemailer 是一款简单易用的基于于SMTP协议(或 Amazon SES)的,用nodejs写的邮件发送组件,目前支持绝大多数主流邮箱,如QQ邮箱,Gmail等;与网站集成起来非常容易,几行代码即可实现邮箱验证,密码修改等需要使用自动邮件发送的功能。
安装
通过npm安装一行命令即可,确保之前已经安装过node.js
npm install nodemailer --save
测试
创建一个js文件,如 mail.js,写入如下内容,将user/pass改成你自己的用户名密码
var nodemailer = require("nodemailer");
var user = '00000000@qq.com'
, pass = 'XXXXXXXXX'
;
var smtpTransport = nodemailer.createTransport("SMTP", {
service: "QQ"
, auth: {
user: user,
pass: pass
}
});
smtpTransport.sendMail({
from : 'Kris<' + user + '>'
, to : '<kris@domain.com>'
, subject : 'Node.JS通过SMTP协议从QQ邮箱发送邮件'
, html : '这是一封测试邮件 <br> '
}, function(err, res) {
console.log(err, res);
});
运行
命令行输入:
node mail
结果
下列信息代表你的QQ邮箱没有开启SMTP邮件发送,在QQ邮箱找到相应配置,开启即可。
$ node mail
{ [AuthError: Invalid login - 454 Authentication failed, please open smtp flag first!]
name: 'AuthError',
data: '454 Authentication failed, please open smtp flag first!',
stage: 'auth' } undefined
发送成功的标志
$ node mail
null { message: '250 Ok: queued as',
messageId: '918d1724d950d2dc3aef42b7e7f64d@pvgd50816637a' }
更新
如果碰到错误:
[Error: Unsupported configuration, downgrade Nodemailer to v0.7.1 to use it]
说明你和的NodeMail比较新,NodeMailer 1.10.x 以上版本将不再需要设置 SMTP 类型参数
var smtpTransport = nodemailer.createTransport({
service: "QQ"
, auth: {
user: user,
pass: pass
}
});
利用telnet进行SMTP的验证
telnet: > telnet mx1.example.com smtp telnet: Trying 192.0.2.2... telnet: Connected to mx1.example.com. telnet: Escape character is '^]'. server: 220 mx1.example.com ESMTP server ready Tue, 20 Jan 2004 22:33:36 +0200 client: HELO client.example.com server: 250 mx1.example.com client: MAIL from: <sender@example.com> server: 250 Sender <sender@example.com> Ok client: RCPT to: <recipient@example.com> server: 250 Recipient <recipient@example.com> Ok client: DATA server: 354 Ok Send data ending with <CRLF>.<CRLF> client: From: sender@example.com client: To: recipient@example.com client: Subject: Test message client: client: This is a test message. client: . server: 250 Message received: 20040120203404.CCCC18555.mx1.example.com@client.example.com client: QUIT server: 221 mx1.example.com ESMTP server closing connection
请问为什么是kris ?
@taevas #0
是用户 kris 发布的文章。
我想知道你说的 注* 你无法通过此功能自动群发垃圾邮件,一般大型邮件服务商对发送次数和间隔有限制,数量过大被会屏蔽。 这句话是指对方的服务器还是这个模块用的是第三方服务器发送?
@小菜 #2
模块本身没有限制,一般是邮件服务提供商的限制。
把
这些命令字符是在哪里写?cmd命令字符还是linux服务器或者JavaScript上?新手现在看的一团乱,拜托了,希望您能详细解答下,万分感谢!
赛博国际亚洲官网:http://www.saibet666.com打造全亚洲最顶级的娱乐平台!顶级信誉,玩家首先!手机APP客户端
标题 ##强调文本
加粗文本
##
@疑似风月 #5
命令都是Unix命令,可以在Mac或Linux的shell上执行,windows上的命令有点不同
这是邮件服务器吗!!!这是第三方服务器,你只是用人家的东西!
坑爹啊,这叫邮件服务器?
这叫邮件服务器?
这叫邮件服务器?
@疑似风月 #5
在node.js编译器上运行