Mail sending ready

This commit is contained in:
Peaceultime 2024-11-19 18:07:48 +01:00
parent d0de943df2
commit 9c52494f8e
6 changed files with 46 additions and 28 deletions

BIN
db.sqlite

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -130,6 +130,7 @@ export default defineNuxtConfig({
port: '', port: '',
user: '', user: '',
passwd: '', passwd: '',
dkim: '',
} }
}, },
security: { security: {

View File

@ -9,6 +9,9 @@ export default defineEventHandler(async (e) => {
return; return;
} }
const id = getRouterParam(e, 'id'); const id = getRouterParam(e, 'id');
const payload: Record<string, any> = await readBody(e);
console.log(payload)
if(!id) if(!id)
{ {
@ -16,12 +19,20 @@ export default defineEventHandler(async (e) => {
return; return;
} }
const result = await runTask(id); const result = await runTask(id, {
payload: payload
});
if(!result.result) if(!result.result)
{ {
setResponseStatus(e, 500); 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;
}); });

View File

@ -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({ export default defineTask({
meta: { meta: {
@ -7,34 +29,18 @@ export default defineTask({
}, },
async run(e) { async run(e) {
try { try {
const config = useRuntimeConfig(); const status = await transport.sendMail({
from: 'Message automatique d[any] <no-reply@peaceultime.com>',
const transport = nodemailer.createTransport({ to: ['peaceultime@peaceultime.com', 'clem31470@gmail.com'],
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',
text: 'Ceci est un texte de mail.', text: 'Ceci est un texte de mail.',
subject: 'Test', subject: 'Test',
}); });
if(status.rejected.length > 0)
{
return { result: false, error: status.response, details: status.rejectedErrors };
}
return { result: true }; return { result: true };
} }
catch(e) catch(e)