generated from gitea_admin/default
API Microsoft
This commit is contained in:
@@ -1,42 +1,62 @@
|
||||
import nodemailer from "nodemailer"
|
||||
|
||||
let transporter
|
||||
const transporters = {}
|
||||
|
||||
function isSmtpConfigured(config) {
|
||||
return Boolean(
|
||||
config.smtpHost &&
|
||||
config.smtpPort &&
|
||||
config.smtpUser &&
|
||||
config.smtpPassword &&
|
||||
config.smtpFromEmail
|
||||
config.host &&
|
||||
config.port &&
|
||||
config.user &&
|
||||
config.password &&
|
||||
config.fromEmail
|
||||
)
|
||||
}
|
||||
|
||||
function getTransporter() {
|
||||
if (transporter) {
|
||||
return transporter
|
||||
function getSmtpConfig(config, suffix) {
|
||||
const key = suffix.charAt(0).toUpperCase() + suffix.slice(1)
|
||||
|
||||
return {
|
||||
host: config[`smtpHost${key}`],
|
||||
port: config[`smtpPort${key}`],
|
||||
secure: config[`smtpSecure${key}`],
|
||||
user: config[`smtpUser${key}`],
|
||||
password: config[`smtpPassword${key}`],
|
||||
fromEmail: config[`smtpFromEmail${key}`],
|
||||
fromName: config[`smtpFromName${key}`],
|
||||
}
|
||||
}
|
||||
|
||||
function getFrom(config) {
|
||||
return config.fromName
|
||||
? `"${config.fromName}" <${config.fromEmail}>`
|
||||
: config.fromEmail
|
||||
}
|
||||
|
||||
function getTransporter(suffix) {
|
||||
if (transporters[suffix]) {
|
||||
return transporters[suffix]
|
||||
}
|
||||
|
||||
const config = useRuntimeConfig()
|
||||
const config = getSmtpConfig(useRuntimeConfig(), suffix)
|
||||
|
||||
if (!isSmtpConfigured(config)) {
|
||||
return null
|
||||
}
|
||||
|
||||
transporter = nodemailer.createTransport({
|
||||
host: config.smtpHost,
|
||||
port: Number(config.smtpPort),
|
||||
secure: String(config.smtpSecure).toLowerCase() === "true",
|
||||
transporters[suffix] = nodemailer.createTransport({
|
||||
host: config.host,
|
||||
port: Number(config.port),
|
||||
secure: String(config.secure).toLowerCase() === "true",
|
||||
connectionTimeout: 10000,
|
||||
greetingTimeout: 10000,
|
||||
socketTimeout: 15000,
|
||||
auth: {
|
||||
user: config.smtpUser,
|
||||
pass: config.smtpPassword,
|
||||
user: config.user,
|
||||
pass: config.password,
|
||||
},
|
||||
})
|
||||
|
||||
return transporter
|
||||
return transporters[suffix]
|
||||
}
|
||||
|
||||
function escapeHtml(value) {
|
||||
@@ -50,15 +70,14 @@ function escapeHtml(value) {
|
||||
|
||||
export async function sendParcDemandEmails(payload) {
|
||||
const config = useRuntimeConfig()
|
||||
const mailer = getTransporter()
|
||||
const smtpConfig = getSmtpConfig(config, "parc")
|
||||
const mailer = getTransporter("parc")
|
||||
|
||||
if (!mailer || !config.parcRequestRecipientEmail) {
|
||||
return false
|
||||
}
|
||||
|
||||
const from = config.smtpFromName
|
||||
? `"${config.smtpFromName}" <${config.smtpFromEmail}>`
|
||||
: config.smtpFromEmail
|
||||
const from = getFrom(smtpConfig)
|
||||
|
||||
const adminSubject = `WONDIF - Formulaire de demande Parc instrumental - ${payload.name}`
|
||||
const adminText = [
|
||||
@@ -144,7 +163,8 @@ function getProjetLyceeSummary(payload) {
|
||||
|
||||
export async function sendProjetLyceeEmails(payload) {
|
||||
const config = useRuntimeConfig()
|
||||
const mailer = getTransporter()
|
||||
const smtpConfig = getSmtpConfig(config, "aec")
|
||||
const mailer = getTransporter("aec")
|
||||
|
||||
if (!mailer) {
|
||||
console.warn("Email projet lycée non envoyé: configuration SMTP incomplète.")
|
||||
@@ -156,9 +176,7 @@ export async function sendProjetLyceeEmails(payload) {
|
||||
return false
|
||||
}
|
||||
|
||||
const from = config.smtpFromName
|
||||
? `"${config.smtpFromName}" <${config.smtpFromEmail}>`
|
||||
: config.smtpFromEmail
|
||||
const from = getFrom(smtpConfig)
|
||||
|
||||
const summary = getProjetLyceeSummary(payload)
|
||||
|
||||
@@ -262,7 +280,8 @@ function getProjetAcademieSummary(payload) {
|
||||
|
||||
export async function sendProjetAcademieEmails(payload) {
|
||||
const config = useRuntimeConfig()
|
||||
const mailer = getTransporter()
|
||||
const smtpConfig = getSmtpConfig(config, "aec")
|
||||
const mailer = getTransporter("aec")
|
||||
|
||||
if (!mailer) {
|
||||
console.warn("Email projet académie non envoyé: configuration SMTP incomplète.")
|
||||
@@ -274,9 +293,7 @@ export async function sendProjetAcademieEmails(payload) {
|
||||
return false
|
||||
}
|
||||
|
||||
const from = config.smtpFromName
|
||||
? `"${config.smtpFromName}" <${config.smtpFromEmail}>`
|
||||
: config.smtpFromEmail
|
||||
const from = getFrom(smtpConfig)
|
||||
|
||||
const summary = getProjetAcademieSummary(payload)
|
||||
const fullName = `${payload.lastName} ${payload.firstName}`
|
||||
|
||||
Reference in New Issue
Block a user