当前位置 : 主页 > 网络编程 > JavaScript >

nodemailer.js

来源:互联网 收集:自由互联 发布时间:2021-06-30
使用NodeJS搭建邮件自动发送 const express = require('express') bodyParser = require('body-parser') // Nodejs发邮件组件Nodemailer nodemailer = require('nodemailer') // 使用NodeJS搭建邮件自动发送服务器 smtpTransport
使用NodeJS搭建邮件自动发送
const express = require('express')
      bodyParser = require('body-parser')
      // Nodejs发邮件组件Nodemailer 
      nodemailer = require('nodemailer') 
      // 使用NodeJS搭建邮件自动发送服务器
      smtpTransport = require('nodemailer-smtp-transport')
      app = express() 

app.use(express.static('www'))
app.use(bodyParser.urlencoded({extended:true}))

//设置跨域访问
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

app.post('/email',(req,res)=>{ 
    // 开启一个 SMTP 连接池
    var transport = nodemailer.createTransport(smtpTransport({
    host: "smtp.qq.com", // 主机   smtp.126.com  smtp.163.com
    secure: true, // 使用 SSL
    secureConnection: true, // 使用 SSL
    port: 465, // SMTP 端口
    auth: {
        user: "1254158627@qq.com", // 账号
        //这里密码不是qq密码,是你设置的smtp密码
        // 163邮箱客户端授权密码怎么获取http://jingyan.baidu.com/article/495ba841ecc72c38b30ede38.html
        // qq邮箱客户端授权密码怎么获取http://jingyan.baidu.com/article/3052f5a1ee816d97f31f86b8.html
        pass: "******" // 密码
    }
    }));
    
    // 设置邮件内容
    var mailOptions = {
    from: "1254158627@qq.com", // 发件地址
    to: "hjm100@126.com",      // 收件列表(收件地址)
    subject:req.body.email,    // 标题(邮件标题:发件人地址)
    text:req.body.name,        // 发件人姓名
    html:'发件人:'+req.body.name+''+'邮件内容:'+req.body.message// html 内容(邮件内容)
    }
    
    // 发送邮件
    transport.sendMail(mailOptions, function(error, response) {
    if (error) {
        // console.error(error);
        res.json({code:0,message:'发送邮件失败'})
        
    } else {
        // console.log(response);
        res.json({code:1,message:'发送邮件成功'})
    }
    transport.close(); // 如果没用,关闭连接池
    });
})

app.listen(8080,()=>{
    console.log('node is ok')
})

 //一般需要通过表单提交形式完成邮件发送,其实我们模拟的是一个邮件发送,真正的发送主题其实是,你自己的两个邮箱
//之间数据互通,我们只是通过表单拿到用户的邮箱地址以及发件内容和姓名而已!
//从而我们可以给用户回复!!
//在命令行输入:node server 当输出node is ok的时候说明服务启动,即可配合前端完成邮件发送
//以下是package.json相关内容,直接 npm install 即可安装
{
  "name": "three",
  "version": "1.0.0",
  "description": "个人简介",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "\"鸿基梦\"",
  "license": "ISC",
  "dependencies": {
    "art-template": "^3.0.3",
    "body-parser": "^1.15.2",
    "cookie-parser": "^1.4.3",
    "express": "^4.14.0",
    "fs": "0.0.1-security",
    "mongoose": "^4.6.5",
    "multer": "^1.2.0",
    "socket.io": "^1.7.2",
    "tmodjs": "^1.0.3"
  }
}
网友评论