134 lines
3.6 KiB
JavaScript
134 lines
3.6 KiB
JavaScript
// import nodeMailer from "nodemailer";
|
|
// import { createTransport } from "nodemailer";
|
|
|
|
// const transporter = createTransport({
|
|
// host: process.env.SMPT_HOST,
|
|
// port: process.env.SMPT_PORT,
|
|
// // service: process.env.SMPT_SERVICE,
|
|
// auth: {
|
|
// user: process.env.SMPT_MAIL,
|
|
// pass: process.env.SMPT_PASSWORD,
|
|
// },
|
|
// });
|
|
|
|
// const sendEmail = async (options) => {
|
|
// await transporter.sendMail(options, function (error, info) {
|
|
// if (error) {
|
|
// console.log(error);
|
|
// }
|
|
// });
|
|
// };
|
|
// export default sendEmail;
|
|
import { createTransport } from "nodemailer";
|
|
|
|
const transporter = createTransport({
|
|
host: process.env.SMTP_HOST || "smtp-relay.brevo.com",
|
|
port: process.env.SMTP_PORT || 587,
|
|
secure: false, // STARTTLS
|
|
auth: {
|
|
user: process.env.SMTP_MAIL || "78ab42003@smtp-brevo.com",
|
|
pass: process.env.SMTP_PASSWORD || "saTOdNcySftx2PXG"
|
|
},
|
|
tls: {
|
|
ciphers: 'SSLv3',
|
|
rejectUnauthorized: true
|
|
},
|
|
logger: process.env.NODE_ENV === 'development'
|
|
});
|
|
|
|
|
|
const sendEmail = async (options) => {
|
|
const mailOptions = {
|
|
from: options.from || `Cheminova <${process.env.SEND_EMAIL_FROM || "cheminova2004@gmail.com"}>`,
|
|
to: options.to,
|
|
subject: options.subject,
|
|
html: options.html,
|
|
text: options.text || convertHtmlToText(options.html), // Auto plaintext fallback
|
|
attachments: options.attachments || []
|
|
};
|
|
|
|
try {
|
|
const info = await transporter.sendMail(mailOptions);
|
|
console.log(`Email sent to ${mailOptions.to} (${options.subject})`);
|
|
return info;
|
|
} catch (error) {
|
|
console.error('Email failed:', {
|
|
to: mailOptions.to,
|
|
error: error.message
|
|
});
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
// Helper for plaintext fallback
|
|
function convertHtmlToText(html) {
|
|
return html
|
|
? html.replace(/<[^>]*>/g, '').replace(/\n{3,}/g, '\n\n')
|
|
: '';
|
|
}
|
|
|
|
// Verify connection on startup
|
|
transporter.verify()
|
|
.then(() => console.log('SMTP connection established'))
|
|
.catch(err => console.error('SMTP connection failed:', err));
|
|
|
|
export default sendEmail;
|
|
|
|
// import sgMail from '@sendgrid/mail';
|
|
// sgMail.setApiKey(process.env.SENDGRID_API_KEY)
|
|
// // console.log(process.env.SENDGRID_API_KEY)
|
|
// const sendEmail = async (options) => {
|
|
// sgMail.send(options)
|
|
|
|
// }
|
|
// export default sendEmail
|
|
|
|
// from message bird SMS send------------------------------------
|
|
// import { initClient } from "messagebird";
|
|
// const messagebird = initClient("p2YaqxU9uYx2F3d3dV8ywAFtk");
|
|
// // e7HGr3kMl6su4c79DKjNAwlLQ
|
|
// //7oOgyzfNuwBnqMc2oK6aGfczs
|
|
// //11yKY8EbdFJpugJzaKyAH3YaK
|
|
import { initClient } from "messagebird";
|
|
|
|
const messagebird = initClient("p2YaqxU9uYx2F3d3dV8ywAFtk");
|
|
export const sendOtp = async (recipient, message) => {
|
|
if (!recipient || !message) {
|
|
return;
|
|
}
|
|
|
|
const params = {
|
|
originator: "+447418314922",
|
|
recipients: [recipient],
|
|
body: message,
|
|
};
|
|
|
|
messagebird.messages.create(params, (err, response) => {
|
|
if (err) {
|
|
console.error("Error sending message:", err);
|
|
return;
|
|
}
|
|
// console.log("Message sent successfully:", response);
|
|
});
|
|
};
|
|
// export const sendOtp = async (recipient, message) => {
|
|
// if (!recipient || !message) {
|
|
// return;
|
|
// }
|
|
// console.log(recipient, message);
|
|
// const params = {
|
|
// originator: "+447418314922",
|
|
// recipients: [recipient],
|
|
// body: message,
|
|
// };
|
|
|
|
// messagebird.messages.create(params, (err, response) => {
|
|
// if (err) {
|
|
// console.error("Error sending message-------:", err);
|
|
// return;
|
|
// }
|
|
// // console.log("Message sent successfully:", response);
|
|
// // console.log("Message details:", response, response?.recipients?.items);
|
|
// });
|
|
// };
|