Spaces:
Runtime error
Runtime error
| const nodemailer = require('nodemailer'); | |
| const twilio = require('twilio'); | |
| const env = require('../config/env'); | |
| const mailTransport = env.smtp.host && env.smtp.user | |
| ? nodemailer.createTransport({ | |
| host: env.smtp.host, | |
| port: env.smtp.port, | |
| secure: env.smtp.secure, | |
| auth: { | |
| user: env.smtp.user, | |
| pass: env.smtp.pass | |
| } | |
| }) | |
| : null; | |
| const twilioClient = env.twilio.sid && env.twilio.token | |
| ? twilio(env.twilio.sid, env.twilio.token) | |
| : null; | |
| async function sendEmail(to, subject, text) { | |
| if (!mailTransport) { | |
| // Fallback for local development without SMTP configuration. | |
| console.log(`[EMAIL][SKIPPED] to=${to} subject=${subject} text=${text}`); | |
| return { skipped: true }; | |
| } | |
| await mailTransport.sendMail({ | |
| from: env.smtp.from, | |
| to, | |
| subject, | |
| text | |
| }); | |
| return { skipped: false }; | |
| } | |
| async function sendWhatsApp(to, body) { | |
| if (!twilioClient || !env.twilio.from || !to) { | |
| console.log(`[WHATSAPP][SKIPPED] to=${to} body=${body}`); | |
| return { skipped: true }; | |
| } | |
| await twilioClient.messages.create({ | |
| from: env.twilio.from, | |
| to, | |
| body | |
| }); | |
| return { skipped: false }; | |
| } | |
| module.exports = { sendEmail, sendWhatsApp }; | |