nodejs邮件发送
nodejs邮件发送
介绍
node.js发送邮件有多种第三方模块,比较有名的是emailjs,nodemailer,个人感觉emailjs更轻量级,使用更简单,nodemailer关注人更多,功能更加完善。
实践
本次选用这两种,仅实现简单发送邮件功能,更多功能,请查询官网API.
首先新建文件夹node,然后在该文件夹下新建package.json文件,在其中增加以下配置
1 | { |
在node 目录下执行命令
1 | npm install |
- emailjs
新建myemailjs.js文件,添加如下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15var email = require("emailjs");
var server = email.server.connect({
user: "aibibang@sohu.com",
password:"*********",
host: "smtp.sohu.com",
ssl: false
});
// send the message and get a callback with an error or details of the message that was sent
server.send({
text: "i hope this works",
from: "aibibang@sohu.com",
to: "aibibang@sohu.com",
subject: "testing emailjs"
}, function(err, message) { console.log(err || message); });
执行即可发送成功!
1 | node myemailjs.js |
- nodemailer
新建mynodemailer.js文件,添加如下内容:
1 | const nodemailer=require("nodemailer"); |
执行即可发送成功!
1 | node mynodemailer.js |
总结
- 如果SMPT服务器没有进行安全校验,那么一定要去掉用户与密码,这点要和java API区别,切记,为了这个问题,花费了一天代价。
例如如下问题:1
2
3
4
5
6
7
8
9
10
11
12{ Error: no form of authorization supported
at module.exports (/data/truman/node/node_modules/emailjs/smtp/error.js:2:13)
at initiate (/data/truman/node/node_modules/emailjs/smtp/smtp.js:543:44)
at caller (/data/truman/node/node_modules/emailjs/smtp/smtp.js:48:14)
at attempt (/data/truman/node/node_modules/emailjs/smtp/smtp.js:415:14)
at caller (/data/truman/node/node_modules/emailjs/smtp/smtp.js:48:14)
at response (/data/truman/node/node_modules/emailjs/smtp/smtp.js:345:13)
at caller (/data/truman/node/node_modules/emailjs/smtp/smtp.js:48:14)
at response (/data/truman/node/node_modules/emailjs/smtp/smtp.js:201:11)
at caller (/data/truman/node/node_modules/emailjs/smtp/smtp.js:48:14)
at Socket.response (/data/truman/node/node_modules/emailjs/smtp/smtp.js:181:11)
code: 7, - 对于本地是否可以访问SMTP服务器,可以使用telnet,进行查验,如果都无法telnet通,肯定是无法发送邮件的。
1
telnet smtp.sohu.com 25