diff --git a/db.sqlite b/db.sqlite index 46db994..fd589b8 100644 Binary files a/db.sqlite and b/db.sqlite differ diff --git a/db.sqlite-shm b/db.sqlite-shm index fe9ac28..2ba36f6 100644 Binary files a/db.sqlite-shm and b/db.sqlite-shm differ diff --git a/db.sqlite-wal b/db.sqlite-wal index e69de29..8df9945 100644 Binary files a/db.sqlite-wal and b/db.sqlite-wal differ diff --git a/nuxt.config.ts b/nuxt.config.ts index 8068e8f..1dd8c34 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -130,6 +130,7 @@ export default defineNuxtConfig({ port: '', user: '', passwd: '', + dkim: '', } }, security: { diff --git a/server/api/admin/jobs/[id].post.ts b/server/api/admin/jobs/[id].post.ts index 2b44b2b..8f09cea 100644 --- a/server/api/admin/jobs/[id].post.ts +++ b/server/api/admin/jobs/[id].post.ts @@ -9,6 +9,9 @@ export default defineEventHandler(async (e) => { return; } const id = getRouterParam(e, 'id'); + const payload: Record = await readBody(e); + + console.log(payload) if(!id) { @@ -16,12 +19,20 @@ export default defineEventHandler(async (e) => { return; } - const result = await runTask(id); + const result = await runTask(id, { + payload: payload + }); if(!result.result) { setResponseStatus(e, 500); - throw result.error ?? new Error('Erreur inconnue'); + + if(result.error && (result.error as Error).message) + throw result.error; + else if(result.error) + throw new Error(result.error); + else + throw new Error('Erreur inconnue'); } - return + return; }); \ No newline at end of file diff --git a/server/tasks/mail.ts b/server/tasks/mail.ts index c78a88f..9d91bac 100644 --- a/server/tasks/mail.ts +++ b/server/tasks/mail.ts @@ -1,4 +1,26 @@ -import * as nodemailer from 'nodemailer'; +import nodemailer from 'nodemailer'; + +const config = useRuntimeConfig(); +const [domain, selector, dkim] = config.mail.dkim.split(":"); + +const transport = nodemailer.createTransport({ + pool: true, + host: config.mail.host, + port: config.mail.port, + secure: false, + auth: { + user: config.mail.user, + pass: config.mail.passwd, + }, + requireTLS: true, + dkim: { + domainName: domain, + keySelector: selector, + privateKey: dkim, + }, + logger: true, + debug: true, +}); export default defineTask({ meta: { @@ -7,33 +29,17 @@ export default defineTask({ }, async run(e) { try { - const config = useRuntimeConfig(); - - const transport = nodemailer.createTransport({ - pool: true, - host: config.mail.host, - port: config.mail.port, - secure: true, - auth: { - user: config.mail.user, - pass: config.mail.passwd, - }, - tls: { - rejectUnauthorized: false, - } - }); - - transport.verify((error) =>{ - if (error) - console.log(error); - }); - - await transport.sendMail({ - sender: 'no-reply@peaceultime.com', - to: 'clem31470@gmail.com', + const status = await transport.sendMail({ + from: 'Message automatique d[any] ', + to: ['peaceultime@peaceultime.com', 'clem31470@gmail.com'], text: 'Ceci est un texte de mail.', subject: 'Test', }); + + if(status.rejected.length > 0) + { + return { result: false, error: status.response, details: status.rejectedErrors }; + } return { result: true }; }