0.目标
在本节中,我将实现一个简单的邮件发送功能。
1.部署
1.1部署快速
如果您不知道如何部署,请参考:部署快速部署
1.2准备一个邮箱并启动SMTP服务
要实现这个功能,首先要有邮箱;因为需要通过SMTP发送,还需要开启相关功能。你可以登录邮箱后打开这个设置,以新浪邮箱和QQ邮箱为例:
2.服务器端
2.1使用节点邮件程序
要在这里使用节点邮件程序,您需要自己安装它:
Npm安装节点邮件程序-保存引用路由/索引. js中的节点邮件程序:
var multer=require(' nodemailer ');2.2配置
在routes/index.js中创建传输模式:
var mail transport=nodemailer . create transport({ host : ' SMTP . Sina.com ',secureconnection: true,//使用SSL(防止信息被窃取的安全方式)auth3360 { user: '您的电子邮件地址',pass : '您的电子邮件密码' },请注意,较低版本的节点邮件程序可能需要再传入一个参数“SMTP”:
var mail transport=nodemailer . create transport(' SMTP ',{host:' smtp.sina.com ',secureconnection:true,//usesslauth3360 {user3360 '您的电子邮件地址',pass3360 '您的电子邮件密码' },});2.3发送邮件
/*浏览器发送*/router.get ('/send ',函数(req,RES,next) {var options={from : ' '您的姓名'您的电子邮件地址'输入地址后(如127.0.0.1:3000/sned)。收件人: ' '用户1 '电子邮件地址1,'用户2 '电子邮件地址2 ',//cc : '' //CC //bcc : '' //加密主题: '来自节点邮件程序的电子邮件',文本: '来自节点邮件程序的电子邮件',HTML/h1 pimg src=' http : cid 336000000001 '//p ',附件:[{ filename 3360 ' impmailTransport.sendMail(选项,函数(err,msg){ if(err){ console . log(err);res.render('index ',{ title : err });} else { console . log(msg);Res.render('index ',{title: '已收到:' msg . accepted });} });});如果要发送附件,先把要发送的文件放入项目中,在上面的代码中修改附件的文件名和路径。
从代码中可以知道,要在邮件正文中添加图片,可以设置图片的cid,然后在img标签的src中设置为对应的cid。
注意,不建议直接在js代码中嵌入HTML代码,也不建议在邮件正文中添加图片。
3.测试
在浏览器中输入地址(例如127.0.0.1:3000/sned)。
发送的等待时间取决于附件大小和网络带宽等因素。如果有大附件要发送,可能需要很长时间;因此,建议在测试时使用小文件。
如果传输成功,将会给出提示:
并在邮箱中收到相应的邮件:
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。