发送邮件
目前测试了几种可行方式:
- 第一种:最懒惰的方法
— 也可自行直接用a链接直接调起本地邮件发送器,,即可。
限制: 要求必须本地有下载并注册
<a href="mailto:youremail@mail.com?subject=邮件标题&body=邮件内容">告诉我们</a>
-
第二种:最花钱的方法,
— 需要用到第三方平台:https://formspree.io/
,— 注册登录之后,用自己的邮箱自动生成一个可发送链接:类似:
https://formspree.io/f/xskwwpjz
,— 然后将此链接方式
form
标签中action="https://formspree.io/f/xskwwpjz"
即可,— 详情参考如下链接:https://blog.csdn.net/weixin_40758850/article/details/93398106
限制: 第三方平台每月免费发送限制为50条,需要开通vip,于是乎作为穷根深种的我发掘了一下第三种方法。
-
第三种: 简单易用的 Node.JS 邮件发送模块
— 需要开启node服务,安装
Nodemailer
插件,需要自建模块简单配置一下,
— 配置该路由,前端调用并传输信息即可。
— 配置前准备:需要准备接收邮箱并开启该邮箱的IMAP/SMTP服务
— 获取到一个授权码,这个授权码加到该配置中,但是授权码会随着账号密码更改等原因而需重新获取并配置。
具体配置:npm install nodemailer
// routes/nodemailer.js
// 这是一个发送邮件的模块
const nodemailer = require('nodemailer');
// 简单配置
const params = {
host: 'smtp.qq.com',//固定的,邮箱账号中开启 IMAP/SMTP服务 中有查看详细说明
port: 465, //端口也是固定的,查询同上
secture: false,
auth: {
user: '123@qq.com', //自己的邮箱账号
pass: 'lmfyglmrulzzffhj' // 这里的密码不是 邮箱的登录密码 而是 通过邮箱内 设置 形成的授权码 这个可以自己进行设置
}
}
// 邮件信息
const mailOptions = {
from: '123@qq.com',
to: '123@qq.com,456@qq.com', // 这里可以发送多个用户 分别用 , 隔开
subject: 'hello!',
html: '这个是我测试发送邮箱的内容', // 这里可以是 html 标签 字符串
// attachments: [{ // 这里可以添加附件 并且可以添加多个
// filename: 'test.txt',
// content: 'hello world!'
// },{
// filename: 'test.txt',
// content: 'hello world!',
// contentType: 'text/plain'
// }]
// }
}
// 发送邮件
var send = function() {
const transpoter = nodemailer.createTransport(params);
transpoter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log(err);
return
}
console.log(info);
});
}
module.exports = send;
//app.js
var postmailer = require('./routes/nodemailer');
app.use('/mailer', postmailer);
$("#submit").click(function () {
$.ajax({
url: '/mailer',
type: 'post',
dataType: 'json',
success: function (data) {
console.log(data)
},
error: function (err) {
console.log(err)
}
})
});
之后前端调用即可,可前端传参作为发送邮件信息。