send email when message is sent

This commit is contained in:
jackiettran
2025-11-10 13:05:10 -05:00
parent 3442e880d8
commit d8a927ac4e
3 changed files with 308 additions and 0 deletions

View File

@@ -54,6 +54,7 @@ class EmailService {
"alphaInvitationToUser.html",
"feedbackConfirmationToUser.html",
"feedbackNotificationToAdmin.html",
"newMessageToUser.html",
];
for (const templateFile of templateFiles) {
@@ -1849,6 +1850,44 @@ class EmailService {
htmlContent
);
}
async sendNewMessageNotification(receiver, sender, message) {
try {
const frontendUrl = process.env.FRONTEND_URL || "http://localhost:3000";
const conversationUrl = `${frontendUrl}/messages/conversations/${sender.id}`;
const timestamp = new Date(message.createdAt).toLocaleString("en-US", {
dateStyle: "medium",
timeStyle: "short",
});
const variables = {
recipientName: receiver.firstName || "there",
senderName: `${sender.firstName} ${sender.lastName}`.trim() || "A user",
subject: message.subject,
messageContent: message.content,
conversationUrl: conversationUrl,
timestamp: timestamp,
};
const htmlContent = this.renderTemplate("newMessageToUser", variables);
const subject = `New message from ${sender.firstName} ${sender.lastName}`;
const result = await this.sendEmail(receiver.email, subject, htmlContent);
if (result.success) {
console.log(
`Message notification email sent to ${receiver.email} from ${sender.email}`
);
}
return result;
} catch (error) {
console.error("Failed to send message notification email:", error);
return { success: false, error: error.message };
}
}
}
module.exports = new EmailService();