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: '',
user: '',
passwd: '',
dkim: '',
}
},
security: {

View File

@ -9,6 +9,9 @@ export default defineEventHandler(async (e) => {
return;
}
const id = getRouterParam(e, 'id');
const payload: Record<string, any> = 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;
});

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({
meta: {
@ -7,34 +29,18 @@ 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] <no-reply@peaceultime.com>',
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 };
}
catch(e)