- 需要先将发送邮箱的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