项目作者: zhaoxuhui1122

项目描述 :
nodejs实现发送邮件的功能 nodejs+nodemailer sendmail
高级语言: JavaScript
项目地址: git://github.com/zhaoxuhui1122/sendMail.git
创建时间: 2017-06-15T02:48:01Z
项目社区:https://github.com/zhaoxuhui1122/sendMail

开源协议:

下载


sendMail

nodejs实现发送邮件的功能

下载项目

  1. git colne https://github.com/zhaoxuhui1122/sendMail.git

执行安装

  1. npm install

进行项目配置

1 ./config/email.js

  1. module.exports = {
  2. email: {
  3. service:'QQ',//发信邮箱服务商
  4. user: '12588351**@qq.com',//发信邮箱账号
  5. pass: 'nwojjgubecoafhig'//发信邮箱密码,这里的密码用的安全管家生成的动态密码,下方将会 详细介绍生成方式
  6. }
  7. }

2../service/email.js

  1. const nodemailer = require('nodemailer')
  2. const smtpTransport = require('nodemailer-smtp-transport');
  3. const config = require('../config/email')
  4. //根据配置文件生成 smtpTransport
  5. transporter = nodemailer.createTransport(smtpTransport({
  6. service: config.email.service,
  7. auth: {
  8. user: config.email.user,//发信人账号
  9. pass: config.email.pass//发信人密码
  10. }
  11. }));
  12. module.exports = function(req,res){
  13. transporter.sendMail({
  14. from: config.email.user,//发信人config
  15. to: req.body.adress, //adress 收件人
  16. subject: req.body.subject,//subject 发送的主题
  17. html: req.body.html//html 发送的html内容
  18. }, function (err, result) {
  19. if (err) {
  20. console.log(err);
  21. res.json("error");
  22. }else{
  23. res.json("success");
  24. console.log("success");
  25. }
  26. });
  27. }

关于如何配置发信箱密码

不能直接使用邮箱密码登录,下方以qq邮箱为例进行说明

1.打开邮箱—>设置—>服务—>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,将如图几项设置为开启

2.点击温馨提示位置的生成授权码【用此码代替密码配置】

3.打开qq安全中心,将页面上的页面上的动态码输入第二部的窗口,生成一个字符串密码

4.将步骤三生成的密码配置进./config/email.js 的email.pass下

启动

  1. node app.js

测试效果

打开index.html,输入邮箱,看是否能够发送成功,相关log信息去控制台查看详情

  1. <body>
  2. <h1>nodejs实现邮件发送功能</h1>
  3. <hr />
  4. <div>
  5. <input type="email" placeholder="输入收件人邮箱地址" required="required" id="email"/>
  6. <button id="btn">发送邮件</button>
  7. </div>
  8. </body>
  9. <script>
  10. $(function () {
  11. var reg = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;
  12. $("#btn").click(function () {
  13. console.log(1)
  14. var email = $("#email").val();
  15. if(reg.test(email)){
  16. $.ajax({
  17. type:"post",
  18. url:"http://lcoalhost:3000/sendMail",
  19. async:true,
  20. data :{
  21. adress :email ,//收信人地址
  22. subject :"测试邮件",//邮件主题
  23. html :"hello World !"//邮件内容
  24. }
  25. });
  26. }else{
  27. alert("邮件格式错误!")
  28. }
  29. })
  30. })
  31. </script>