feat: improve account management and welcome emails
This commit is contained in:
20
server/src/services/email.ts
Normal file
20
server/src/services/email.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { config } from '../config.js';
|
||||
|
||||
type WelcomeRecipient = { name: string; email: string };
|
||||
|
||||
export async function sendWelcomeEmail(recipient: WelcomeRecipient) {
|
||||
if (!config.RESEND_API_KEY || !config.EMAIL_FROM) return false;
|
||||
|
||||
const escapedName = recipient.name.replace(/[&<>"']/g, (character) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[character] || character));
|
||||
const response = await fetch('https://api.resend.com/emails', {
|
||||
method: 'POST',
|
||||
headers: { Authorization: `Bearer ${config.RESEND_API_KEY}`, 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
from: config.EMAIL_FROM,
|
||||
to: [recipient.email],
|
||||
subject: 'Bem-vindo(a) ao Compor HUB',
|
||||
html: `<main style="font-family:Arial,sans-serif;color:#18181b;line-height:1.55"><h1>Bem-vindo(a), ${escapedName}!</h1><p>Sua conta no <strong>Compor HUB</strong> já está pronta.</p><p>Agora você pode acessar cursos, acompanhar suas aulas e baixar materiais complementares.</p><p><a href="${config.FRONTEND_ORIGIN}" style="display:inline-block;background:#f97316;color:#fff;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:700">Acessar Compor HUB</a></p></main>`,
|
||||
}),
|
||||
});
|
||||
return response.ok;
|
||||
}
|
||||
Reference in New Issue
Block a user