const emailService = require('../services/email'); const nocoDB = require('../services/nocodb'); class EmailsController { async sendEmail(req, res, next) { try { const { recipientEmail, senderName, senderEmail, subject, message, postalCode } = req.body; // Send the email const emailResult = await emailService.sendEmail({ to: recipientEmail, from: { email: process.env.SMTP_FROM_EMAIL, name: process.env.SMTP_FROM_NAME }, replyTo: senderEmail, subject: subject, text: message, html: `

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


This message was sent via the Alberta Influence Campaign Tool by ${senderName} (${senderEmail}) from postal code ${postalCode}.

` }); // Log the email send event await nocoDB.logEmailSend({ recipientEmail, senderName, senderEmail, subject, postalCode, status: emailResult.success ? 'sent' : 'failed', timestamp: new Date().toISOString() }); if (emailResult.success) { res.json({ success: true, message: 'Email sent successfully', messageId: emailResult.messageId }); } else { res.status(500).json({ success: false, error: 'Failed to send email', message: emailResult.error }); } } catch (error) { console.error('Send email error:', error); res.status(500).json({ success: false, error: 'Failed to send email', message: error.message }); } } } module.exports = new EmailsController();