import nodemailer from 'nodemailer'; import i18n from '../utils/i18n.js'; import UserParamValue from '../models/type/user_param_value.js'; const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: process.env.SMTP_PORT, secure: process.env.SMTP_SECURE === 'true', auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASSWORD } }); export const sendPasswordResetEmail = async (email, resetLink, language) => { i18n.setLocale(language); const mailOptions = { from: process.env.SMTP_FROM, to: email, subject: i18n.__('password_reset_subject'), text: i18n.__('password_reset_text', { resetLink }) }; await transporter.sendMail(mailOptions); }; export const sendAccountActivationEmail = async (email, activationLink, username, resetToken, languageId) => { const languageObject = await UserParamValue.findOne({ where: { id: languageId } }); const language = languageObject.value; i18n.setLocale(language); const mailOptions = { from: process.env.SMTP_FROM, to: email, subject: i18n.__('account_activation_subject'), text: i18n.__('account_activation_text', { activationLink, username, resetToken }), html: i18n.__('account_activation_html', { username, activationLink, resetToken }) }; await transporter.sendMail(mailOptions); }; export const sendAnswerEmail = async (toEmail, answer, language) => { i18n.setLocale(language); const mailOptions = { from: process.env.SMTP_FROM, to: toEmail, subject: 'yourPart', text: answer, html: `
${ answer }
` }; await transporter.sendMail(mailOptions); };