From 9c52494f8e30b866908fd2213db0f0c5d5c3cde7 Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Tue, 19 Nov 2024 18:07:48 +0100 Subject: [PATCH] Mail sending ready --- db.sqlite | Bin 569344 -> 569344 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 0 -> 16512 bytes nuxt.config.ts | 1 + server/api/admin/jobs/[id].post.ts | 17 +++++++-- server/tasks/mail.ts | 56 ++++++++++++++++------------- 6 files changed, 46 insertions(+), 28 deletions(-) diff --git a/db.sqlite b/db.sqlite index 46db994661e26001b11c80687781052eee734cee..fd589b8ab2c318615fb374d8f170a40a2e7c6acc 100644 GIT binary patch delta 50 xcmZp8pw#d{X~V*JW}Cg6o0r75FNtRaVkRJF24WTR_ delta 50 xcmZp8pw#d{X~V*JX6sD<<|Xm%OX3-UmjciS?YkY(O>~Z)}VYWM^bxVqj)q+1SXc2LKBgE>-{l delta 80 zcmZo@U}|V!;+1%$%K!t66BkO0TChv7nNGgVi7p`mlYpuI4+Il)WHxSa3Ea5BL=OO- CNfZSD diff --git a/db.sqlite-wal b/db.sqlite-wal index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8df99452bb7eb742b7a1560a6c7d9611cf33d7b6 100644 GIT binary patch literal 16512 zcmeI$y-UMD7zXgvmV%U$x(R|Pt~t0Scb7ZtEOiiE9Nf(1E}evm&_Tqn)m1?hH&+)y zcR?H+IygzkI`|(bIC&Kugl0^q=O9BK-jL+?ZcltzJ@LqJ*7F+P=)7NkT)bQz)VBNA zpG`hvT~u|~>0dtgc02gG+nTStul#Cc*mW5%QNGg=+&|x+riXmT5Fann`okG?51^=5iQ(vqDfP3v^Jcx&T?x#D2=8g773xG zB!Y8Gm@x@SQXxsIq_yr_+>2yqxqt3{=U*?7?d_~AoNd<73*;;sF$5q00SG_<0uX=z z1Rwwb2tZ(rK!Lr$>Lh!CwWG#&Hy!Mw7Z|f-L=b=g1Rwwb2tWV=5P$##AOL|Jf#Q0B xr~66v0*gz}Vz+)=LNAcBXv7eJ00bZa0SG_<0uX=z1Rwx`F#-kl0uM#@0zXcU_! { 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 }; }