UNPKG

dry-node

Version:

Initialiseur de structure Node Express typée et modulaire

108 lines (87 loc) 3.35 kB
// const nodemailer = require("nodemailer"); // /** // * email, subject, message // * @param options // * @returns {Promise<*>} // * @constructor // */ // const DrySendEmailSimple = async (options) => { // try { // console.log("je suis là 0 !!"); // const transporter = nodemailer.createTransport({ // host: process.env.SMTP_HOST, // port: process.env.SMTP_PORT, // secure: process.env.SMTP_SECURE, // auth: { // user: process.env.SMTP_EMAIL, // pass: process.env.SMTP_PASSWORD, // }, // tls: { // rejectUnauthorized: false, // Permet les certificats auto-signés // }, // }); // console.log("je suis là milieu !!"); // // Définissez les options de l'email // // Envoyez l'email // const message = { // from: `${process.env.SMTP_NAME} <${process.env.SMTP_EMAIL}>`, // to: options.email, // subject: options.subject, // text: options.message, // html: options.message, // context: { // title: options.code + " " + options.password, // }, // }; // console.log("je suis là 1 !!"); // const info = await transporter.sendMail(message); // console.log("Message sent: %s", info.messageId); // } catch (err) { // return err; // } // }; // module.exports = DrySendEmailSimple; const nodemailer = require("nodemailer"); /** * Envoie un e-mail simple à l'adresse fournie * @param {Object} options - Contient les champs : email, subject, message * @returns {Promise<Object>} - Résultat de l’envoi ou erreur */ const DrySendEmailSimple = async (options) => { try { // ⚠️ Vérification minimale des champs obligatoires if (!options?.email || !options?.subject || !options?.message) { throw new Error("email, subject et message sont requis !"); } console.log("🔧 Initialisation du transporteur SMTP..."); const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: Number(process.env.SMTP_PORT), // Assurez-vous que PORT est un nombre secure: process.env.SMTP_SECURE === "true", // conversion explicite en booléen auth: { user: process.env.SMTP_EMAIL, pass: process.env.SMTP_PASSWORD, }, tls: { rejectUnauthorized: false, // utile si certificat auto-signé }, }); console.log("📦 Préparation du message...", process.env.SMTP_NAME); const message = { from: process.env.SMTP_NAME + `<${process.env.SMTP_EMAIL}>`, // Ex: 'CongoTelecom <mail.congotelecom@mail.com>' to: options.email, subject: options.subject, text: options.message, // contenu brut html: options.message, // contenu HTML si applicable }; //${process.env.SMTP_NAME} console.log("🚀 Envoi de l'email..."); const info = await transporter.sendMail(message); console.log(`✅ Email envoyé avec succès : ${info.messageId}`); return info; // tu peux retourner info pour log ou suivi } catch (err) { console.error("❌ Erreur lors de l'envoi de l'email :", err.message); return err; // utile pour l’appeler via un service et afficher une alerte } }; module.exports = DrySendEmailSimple;