❤ 前端实现发邮件
❤ 前端实现发邮件
1、Nodejs使用nodemailer发邮件
一、开启发送者邮箱的SMTP服务
QQ邮箱开启SMTP服务教程
163邮箱开启SMTP服务教程
二、安装nodemailer模块
在node项目目录下,使用cmd运行下面命令
npm install nodemailer --save
nodemailer官网
https://nodemailer.com/about/
三、根目录下建立一个mailer.js
const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ host:'smtp.qq.com', //发送者邮箱服务端口,参考 https://github.com/nodemailer/nodemailer-wellknown/blob/master/services.json secure:true, auth:{ user:'111111@qq.com', //发送者邮箱 pass:'xyzdawd' //发送者邮箱授权码,不是登录或者独立密码,是你设置的smtp授权密码 }, }); let mailOptions = { from:'111111@qq.com', //发送者邮箱 to:'a22@163.com', //接受者邮箱,可以设置多个 subject:'培训证书', //邮件主题 text:'企业培训证书!', //信箱里邮件列表时,此邮件显示的内容说明 html:'企业培训证书!
', //邮件内容 watchHtml: '企业 培训证书!', // Apple Watch specific HTML body 苹果手表指定HTML格式 //附件 filename在邮件中附件显示的名字,content附件的内容,contentType附件的类型,cid附件的id //关于附件的更多用法以及属性说明,参考 https://nodemailer.com/message/attachments/ attachments: [ // String attachment { filename: 'notes.txt', content: 'Some notes about this e-mail', contentType: 'text/plain' // 可选,会检测文件名 }, ] transporter.sendMail(mailOptions,(err,info)=>{ if(err){ console.log(err); } else{ console.log(info); } });
四、运行
修改配置文件以后,在根目录下命令行执行(切记是命令行来执行)
使用 node mailer.js 运行程序
五、项目中使用
安装 axios npm install axios
注意:
1.建议不要用163邮箱作为发送方
因为163的反垃圾机制,用163向qq邮箱发送,html内容有图片,携带附件的时候,会报错误
Error: Message failed: 554 DT:SPM 163 smtp11, 导致发送失败。目前我使用QQ作为发送方。
2.两个填写发件人账号的地方要写一致,不然会导致如下错误,504,SUM 信封发件人和信头发件人不匹配
Error: Message failed: 554 DT:SPM 126 smtp7
2、emailjs实现发邮件
限制
emailjs邮箱(没有需要注册一个)
需要node的环境,安装emailjs,如下
在前端使用 EmailJS 发送邮件是一种方便的方式,EmailJS 是一个允许你通过前端直接发送电子邮件的服务。以下是一个简单的步骤指南来帮助你在前端使用 EmailJS 发送邮件:
步骤一:注册 EmailJS 账户
访问 EmailJS 官方网站 并注册一个账户。
创建一个项目并获取你的 User ID。
步骤二:安装 EmailJS SDK
通过 npm 安装 EmailJS SDK:
npm install emailjs-com
步骤三:在前端代码中使用 EmailJS 发送邮件
import emailjs from 'emailjs-com'; // 使用你在 EmailJS 上获得的 User ID 和 Service ID const USER_ID = 'your_user_id'; const SERVICE_ID = 'your_service_id'; // 发送邮件的函数 function sendEmail() { emailjs.send(SERVICE_ID, 'template_id', { to_name: 'Recipient Name', message: 'This is a test email sent from EmailJS.' }, USER_ID) .then((response) => { console.log('Email sent:', response); }, (error) => { console.error('Error sending email:', error); }); } // 调用发送邮件函数 sendEmail();
注意事项:
替换 your_user_id 和 your_service_id 分别为你在 EmailJS 上获取的 User ID 和 Service ID。
替换 ‘template_id’ 为你在 EmailJS 上创建的模板 ID。
在 emailjs.send 方法中,可以传递邮件的参数,例如收件人名称、消息内容等。
请确保在发送邮件之前配置好你的 EmailJS 服务和模板,并替换代码中的相应参数。这样就可以在前端使用 EmailJS 发送邮件了。