feat(email): Adding email options for registration
This commit is contained in:
45
server/email.js
Normal file
45
server/email.js
Normal file
@@ -0,0 +1,45 @@
|
||||
import nodemailer from "nodemailer";
|
||||
|
||||
const transport = nodemailer.createTransport({
|
||||
host: process.env.SMTP_HOST ?? "mailpit",
|
||||
port: Number(process.env.SMTP_PORT ?? 1025),
|
||||
secure: process.env.SMTP_SECURE === "true",
|
||||
...(process.env.SMTP_USER
|
||||
? { auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } }
|
||||
: {}),
|
||||
});
|
||||
|
||||
const FROM = process.env.SMTP_FROM ?? "Star Wars Wild Space <noreply@wildspace.local>";
|
||||
const APP_URL = (process.env.APP_URL ?? "http://localhost:8080").replace(/\/$/, "");
|
||||
|
||||
export async function sendConfirmationEmail(to, token) {
|
||||
const url = `${APP_URL}/?email_confirm=${encodeURIComponent(token)}`;
|
||||
await transport.sendMail({
|
||||
from: FROM,
|
||||
to,
|
||||
subject: "Confirmez votre adresse email — Star Wars Wild Space",
|
||||
text: `Cliquez sur le lien ci-dessous pour confirmer votre compte :\n\n${url}\n\nCe lien expire dans 24 heures.`,
|
||||
html: `
|
||||
<h2>Star Wars — Wild Space</h2>
|
||||
<p>Cliquez sur le lien ci-dessous pour confirmer votre adresse email :</p>
|
||||
<p><a href="${url}" style="font-size:16px">${url}</a></p>
|
||||
<p><small>Ce lien expire dans 24 heures.</small></p>
|
||||
`,
|
||||
});
|
||||
}
|
||||
|
||||
export async function sendPasswordResetEmail(to, token) {
|
||||
const url = `${APP_URL}/?reset=${encodeURIComponent(token)}`;
|
||||
await transport.sendMail({
|
||||
from: FROM,
|
||||
to,
|
||||
subject: "Réinitialisation de mot de passe — Star Wars Wild Space",
|
||||
text: `Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe :\n\n${url}\n\nCe lien expire dans 1 heure. Si vous n'avez pas fait cette demande, ignorez cet email.`,
|
||||
html: `
|
||||
<h2>Star Wars — Wild Space</h2>
|
||||
<p>Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe :</p>
|
||||
<p><a href="${url}" style="font-size:16px">${url}</a></p>
|
||||
<p><small>Ce lien expire dans 1 heure. Si vous n'avez pas fait cette demande, vous pouvez ignorer cet email.</small></p>
|
||||
`,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user