const nodemailer = require('nodemailer'); // 邮件配置 - 使用环境变量或默认配置 const emailConfig = { service: process.env.EMAIL_SERVICE || 'qq', auth: { user: process.env.EMAIL_USER || 'your-email@qq.com', pass: process.env.EMAIL_PASS || 'your-app-password' } }; // 接收邮箱配置 const receiverEmail = process.env.ADMIN_EMAIL || 'admin@yourcompany.com'; // 检查邮件配置是否有效 const isEmailConfigured = emailConfig.auth.user !== 'your-email@qq.com' && emailConfig.auth.pass !== 'your-app-password' && receiverEmail !== 'admin@yourcompany.com'; // 创建邮件传输器(仅在配置有效时) const transporter = isEmailConfigured ? nodemailer.createTransport(emailConfig) : null; /** * 发送联系我们留言通知邮件 * @param {Object} contactData 联系信息 * @returns {Promise} 发送结果 */ async function sendContactNotification(contactData) { try { // 检查邮件配置是否有效 if (!isEmailConfigured || !transporter) { console.log('邮件服务未配置,跳过发送通知邮件'); return false; } const { name, email, phone, company, subject, message, createdAt } = contactData; const mailOptions = { from: emailConfig.auth.user, to: receiverEmail, subject: `【网站留言】${subject}`, html: `

新的联系我们留言

联系人信息

姓名: ${name}

邮箱: ${email}

${phone ? `

电话: ${phone}

` : ''} ${company ? `

公司: ${company}

` : ''}

留言时间: ${new Date(createdAt).toLocaleString('zh-CN')}

留言主题

${subject}

留言内容

${message.replace(/\n/g, '
')}

提示:请及时回复客户留言,可直接回复到客户邮箱:${email}

` }; const result = await transporter.sendMail(mailOptions); console.log('邮件发送成功:', result.messageId); return true; } catch (error) { console.error('邮件发送失败:', error); return false; } } /** * 发送自动回复邮件给客户 * @param {Object} contactData 联系信息 * @returns {Promise} 发送结果 */ async function sendAutoReply(contactData) { try { // 检查邮件配置是否有效 if (!isEmailConfigured || !transporter) { console.log('邮件服务未配置,跳过发送自动回复邮件'); return false; } const { name, email, subject } = contactData; const mailOptions = { from: emailConfig.auth.user, to: email, subject: `感谢您的留言 - ${subject}`, html: `

感谢您的留言!

尊敬的 ${name},

感谢您通过我们的网站联系我们。我们已经收到您的留言,我们的工作人员会在24小时内回复您。

您的留言主题:${subject}

提交时间:${new Date().toLocaleString('zh-CN')}

如有紧急事务,请直接拨打我们的客服电话:400-xxx-xxxx


此邮件为系统自动发送,请勿直接回复。
如需联系我们,请访问:https://yourwebsite.com

` }; const result = await transporter.sendMail(mailOptions); console.log('自动回复邮件发送成功:', result.messageId); return true; } catch (error) { console.error('自动回复邮件发送失败:', error); return false; } } module.exports = { sendContactNotification, sendAutoReply };