49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
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,
|
|
},
|
|
});
|
|
|
|
export default defineTask({
|
|
meta: {
|
|
name: 'mail',
|
|
description: 'Send email',
|
|
},
|
|
async run(e) {
|
|
try {
|
|
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)
|
|
{
|
|
return { result: false, error: e };
|
|
}
|
|
},
|
|
}) |