发送邮件

  • 需要先将发送邮箱的SMTP服务(simple mail transport protocol)

具体步骤:打开邮箱,找到账号设置,向下翻找,找到SMTP服务,点击开启,用绑定邮箱的手机号给指定号码发送一个信息来得到一个授权码,将授权码复制保存下来。

  • 创建一个新的文件夹发送邮件,在该文件夹下创建一个public文件夹用于存放前端代码,再在发送邮件文件夹下创建一个index.js文件,初始化npm init,引入express模块npm install express,引入multer模块npm install nodemulter。

在后端index.js里将固定代码块写上

var express = require('express')
var web = express()
web.use(express.static('public'))

web.listen(function(req,res){
console.log('8080启动........')
}
复制代码
  • 在前端public文件夹下创建一个index.html文件,写一个输入框用来获取邮箱,一个textarea来获取邮件内容,写一个发送按钮。
<input type='text' placeholder='请输入邮箱账号'>
<br>
<textarea placeholder='请输入留言' name='' id='' cols='30' roes='10'></textarea>
<br>
<button onclick='sendMail()'>发送</button>
复制代码

前端给发送按钮设一个点击事件,获取到input里输入的邮箱账号,获取到textarea里的留言内容,使用get请求

function sendMail(){
  var address = document.querySelector('input').value
  var message = document.querySelector('textarea').value
  var xhr = new XMLHttpRequest()
  xhr.open('get','/send?address='+ address + '&message=' + message)
  xhr.send()
}
复制代码
  • 后端引入nodemulder模块。var nodemulder = require('nodemulder')

配置发送邮件条件

var config ={
host:"smtp.qq.com"   //主机地址:可以使用新浪邮箱-smtp.sina.com、可以使用qq邮箱-smtp-qq.com、可以使用163邮箱--smtp.163.com
port:25              //新浪和163的端口是465  qq的端口是25
auth:{
   user:'123145.qq.com', //用于发送的邮箱
   pass:'前面保存的授权码',
   }
复制代码

创建一个对象postEmail用来发送邮件,postEmail里包含了之前配置的信息

var postEmail = nodemulter.createTransport(config)
复制代码

使用get接收一下前端发送的内容,
获取到邮箱地址和留言信息

web.get('/send',function(req,res){
var address = req.query.address
var message = req.query.message
postEmail.sendMail({
          from:"用于发送的邮箱",
          to:address,          //邮件发到哪去
          subject:"",          //发送邮件的主题
          html:message         //发送的内容
        })
})
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享