diff --git a/scripts/create_testenv.ts b/scripts/create_testenv.ts index f5bb087..0381281 100644 --- a/scripts/create_testenv.ts +++ b/scripts/create_testenv.ts @@ -8,14 +8,21 @@ nodemailer.createTestAccount((err, account) => { console.error('Failed to create a testing account. ' + err.message); return process.exit(1); } - + let apikey = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const charactersLength = characters.length; + for (var i = 0; i < 64; i++) { + apikey += characters.charAt(Math.floor(Math.random() * charactersLength)); + } const env = ` NODE_ENV=dev MAIL_SERVER=${account.smtp.host} MAIL_PORT=${account.smtp.port} MAIL_USER=${account.user} MAIL_PASSWORD=${account.pass} -MAIL_FROM=${account.user}` +MAIL_FROM=${account.user} +API_KEY=${apikey} +` try { fs.writeFileSync("./.env", env, { encoding: "utf-8" }); diff --git a/src/controllers/MailController.ts b/src/controllers/MailController.ts index fb39637..2c20f9f 100644 --- a/src/controllers/MailController.ts +++ b/src/controllers/MailController.ts @@ -26,4 +26,20 @@ export class MailController { } return; } + + @Post('/test') + @OpenAPI({ description: "Sends test mails" }) + async sendTest(@QueryParam("locale") locale: string) { + if (!this.initialized) { + await this.mailer.init(); + this.initialized = true; + } + try { + this.mailer.sendTestMail(locale) + } catch (error) { + console.log(error) + throw error; + } + return; + } } diff --git a/src/locales/en.json b/src/locales/en.json index 9b17523..ce244da 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,10 +1,11 @@ { - "all-rights-reserved": "All rights reserved.", - "imprint": "Imprint", - "lfk-mail-test": "LfK! - Mail test", - "privacy": "Privacy", - "subject_reset": "{{copyright_owner}} password reset", - "test-mail": "Test mail", - "this-is-a-test-mail-triggered-by-an-admin-in-the-lfk-backend": "This is a test mail triggered by an admin in the LfK! backend.", - "this-mail-was-sent-to-recipient_mail-because-someone-request-a-mail-test-for-this-mail-address": "This mail was sent to {{recipient_mail}} because someone request a mail test for this mail address." + "all-rights-reserved": "All rights reserved.", + "imprint": "Imprint", + "lfk-mail-test": "LfK! - Mail test", + "privacy": "Privacy", + "subject_reset": "{copyright_owner} password reset", + "test-mail": "Test mail", + "this-is-a-test-mail-triggered-by-an-admin-in-the-lfk-backend": "This is a test mail triggered by an admin in the LfK! backend.", + "this-mail-was-sent-to-recipient_mail-because-someone-request-a-mail-test-for-this-mail-address": "This mail was sent to {{to_address}} because someone request a mail test for this mail address.", + "subject_test": "subject_test" } \ No newline at end of file