Vue+NodeJS实现邮件发送
在Vue前端和Node.js后端实现邮件发送,你可以使用Node.js的Nodemailer库。以下是实现的基本步骤和示例代码:
- 安装Nodemailer:
npm install nodemailer
- 在Node.js后端创建邮件发送服务:
// nodemailer.js
const nodemailer = require('nodemailer');
const sendEmail = async (options) => {
// 创建邮件发送器
const transporter = nodemailer.createTransport({
service: 'yourEmailService', // 例: 'gmail'
auth: {
user: 'youremail@example.com',
pass: 'yourpassword'
}
});
// 发送邮件
try {
const info = await transporter.sendMail({
from: '"Your Name" <youremail@example.com>', // 可以是任何已验证的邮箱地址
to: options.email, // 邮件接收者
subject: options.subject, // 邮件主题
text: options.text, // 纯文本内容
html: options.html // HTML内容
});
console.log(`Message sent: ${info.messageId}`);
if (options.callback) {
options.callback(null, 'success');
}
} catch (error) {
console.error('Error sending email: ', error);
if (options.callback) {
options.callback(error, null);
}
}
};
module.exports = sendEmail;
- 在Vue前端发送请求到Node.js服务器:
// Vue组件中
import axios from 'axios';
import sendEmail from './path/to/nodemailer.js';
export default {
methods: {
async sendMail() {
try {
await sendEmail({
email: 'recipient@example.com',
subject: 'Your Subject',
text: 'Plain text content',
html: '<b>HTML content</b>',
callback: (err, success) => {
if (err) {
console.error(err);
} else {
console.log(success);
}
}
});
} catch (error) {
console.error('Error sending email: ', error);
}
}
}
};
确保你的邮箱服务(如Gmail、Outlook等)允许不太安全的应用访问,并在代码中正确配置用户名和密码。
注意:出于安全考虑,不要将用户名和密码硬编码在前端代码中,而是应该在后端安全地管理凭据,并通过API调用的方式进行邮件发送。
评论已关闭