nodeJs发送邮件

搭建Node.js Express项目

1.安装Express

命令:npm install express --save

2.安装nodemailer 

npm  install   nodemailer --save

3.新建server.js,代码如下:

var express = require('express')

var nodemailer = require('nodemailer')

// 加载body-parser 处理post提交过来的数据

var bodyParser = require('body-parser')

var app = express()

var apiRoutes = express.Router()

app.use('/', express.static('./dist'))

// bodyParser 设置,自动会在req上面添加

app.use(bodyParser.urlencoded({ extended: false }))

app.use(bodyParser.json())

apiRoutes.post('/email', function(req, res) {

  var sender={

    user:'[email protected]', // 发送邮箱

    pass:'yyyyyyyy'  // 不是密码,是授权码

  }

  var receive = '[email protected]'  // 接收邮箱

  var content= req.body.content  

  console.info('邮件发送内容', content)

  if (content) {

    // Use Smtp Protocol to send Email

    var transporter = nodemailer.createTransport({

      // https://github.com/andris9/nodemailer-wellknown#supported-services 支持列表

      service: 'qq',// 使用了内置传输发送邮件 查看支持列表:https://nodemailer.com/smtp/well-known/

      //node_modules/nodemailer/well-known/services.json 支持列表

      port: 465,// SMTP 端口 

      secure: false,

      // secureConnection: true, // 使用了 SSL

      auth: {

        user: sender.user,

        pass: sender.pass  // 这里密码不是qq密码,是你设置的smtp密码

      }

    })

    // setup e-mail data with unicode symbols

    var mailOptions = {

      to:receive,// 接收邮箱

      from: sender.user, // 发送邮箱, 这里的from和 上面的user 账号一样的

      subject: `招生报名信息-${formData.fullName}`, // 标题

      // text和html两者只支持一种

      // text: content, // 标题

      html: content // html 内容

    }

    transporter.sendMail(mailOptions, function(error, info) {

      if (error) {    

        res.json({

          success: 0,

          msg: '邮件发送失败'

        })

        console.log(error,info)

        return 

      }

      res.json({

        success: 1,

        msg: '邮件发送成功'

      })

      console.log('邮件发送: ' + info.response)

      transporter.close()

    })

  } else {

    res.json({

      success: 0,

      msg: '内容不能为空'

    })

    return

  }

})

app.use('/api', apiRoutes)

// 前端调取的url:'/api/email';如果这里app.use('/', apiRoutes),前端调取的url:'/email'

app.listen(8081, function() {

  console.info('复制打开浏览器', 'localhost:8081')

})



4.执行以上代码:$ node server.js 

你可能感兴趣的:(nodeJs发送邮件)