From a58698e0fb2e4ac9ce1b5bbfd806af6aab2a52b8 Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 24 Nov 2022 20:58:59 +0100 Subject: [PATCH 1/7] add fake mail server to docker.compose files for development and testing --- docker-compose.override.yml | 11 +++++++++++ docker-compose.test.yml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index fe2f68a8d..c69c68b50 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -112,6 +112,17 @@ services: volumes: - /sessions + ######################################################## + # MAILSERVER TO FAKE SMTP ############################## + ######################################################## + mailserver: + image: maildev/maildev + ports: + - 1080:1080 + - 1025:1025 + networks: + - external-net + volumes: frontend_node_modules: admin_node_modules: diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 790bd468d..84647ef03 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -81,6 +81,17 @@ services: nginx: image: gradido/nginx:test + ######################################################## + # MAILSERVER TO FAKE SMTP ############################## + ######################################################## + mailserver: + image: maildev/maildev + ports: + - 1080:1080 + - 1025:1025 + networks: + - external-net + networks: external-net: internal-net: From e60b455a7f2751042e62f8afacf3a9b48d0e9e21 Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 24 Nov 2022 21:14:14 +0100 Subject: [PATCH 2/7] configure backend to use the fake smtp server by default --- backend/src/config/index.ts | 12 +++++++----- backend/src/mailer/sendEMail.ts | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 26227b90d..f65a0f28b 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -66,14 +66,16 @@ const loginServer = { } const email = { - EMAIL: process.env.EMAIL === 'true' || false, + // eslint-disable-next-line no-unneeded-ternary + EMAIL: process.env.EMAIL === 'false' ? false : true, EMAIL_TEST_MODUS: process.env.EMAIL_TEST_MODUS === 'true' || false, EMAIL_TEST_RECEIVER: process.env.EMAIL_TEST_RECEIVER || 'stage1@gradido.net', - EMAIL_USERNAME: process.env.EMAIL_USERNAME || 'gradido_email', + EMAIL_USERNAME: process.env.EMAIL_USERNAME || 'null', EMAIL_SENDER: process.env.EMAIL_SENDER || 'info@gradido.net', - EMAIL_PASSWORD: process.env.EMAIL_PASSWORD || 'xxx', - EMAIL_SMTP_URL: process.env.EMAIL_SMTP_URL || 'gmail.com', - EMAIL_SMTP_PORT: process.env.EMAIL_SMTP_PORT || '587', + EMAIL_PASSWORD: process.env.EMAIL_PASSWORD || 'null', + EMAIL_SMTP_URL: process.env.EMAIL_SMTP_URL || 'mailserver', + EMAIL_SMTP_PORT: process.env.EMAIL_SMTP_PORT || '1025', + EMAIL_TLS: process.env.EMAIL_TLS === 'true' || false, EMAIL_LINK_VERIFICATION: process.env.EMAIL_LINK_VERIFICATION || 'http://localhost/checkEmail/{optin}{code}', EMAIL_LINK_SETPASSWORD: diff --git a/backend/src/mailer/sendEMail.ts b/backend/src/mailer/sendEMail.ts index 00282f232..b167cee2c 100644 --- a/backend/src/mailer/sendEMail.ts +++ b/backend/src/mailer/sendEMail.ts @@ -29,7 +29,7 @@ export const sendEMail = async (emailDef: { host: CONFIG.EMAIL_SMTP_URL, port: Number(CONFIG.EMAIL_SMTP_PORT), secure: false, // true for 465, false for other ports - requireTLS: true, + requireTLS: CONFIG.EMAIL_TLS, auth: { user: CONFIG.EMAIL_USERNAME, pass: CONFIG.EMAIL_PASSWORD, From 04514f421bc36aecd2a0cdd07c50c5c85185f049 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 25 Nov 2022 11:53:36 +0100 Subject: [PATCH 3/7] adapt mailer unit tests to config changes --- backend/src/mailer/sendEMail.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/mailer/sendEMail.test.ts b/backend/src/mailer/sendEMail.test.ts index e062b71d8..8fa8b0d7b 100644 --- a/backend/src/mailer/sendEMail.test.ts +++ b/backend/src/mailer/sendEMail.test.ts @@ -9,6 +9,7 @@ CONFIG.EMAIL_SMTP_URL = 'EMAIL_SMTP_URL' CONFIG.EMAIL_SMTP_PORT = '1234' CONFIG.EMAIL_USERNAME = 'user' CONFIG.EMAIL_PASSWORD = 'pwd' +CONFIG.EMAIL_TLS = true jest.mock('nodemailer', () => { return { From 47f86b3faa8798fd230409133a3da2a737a41984 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 30 Nov 2022 13:33:28 +0100 Subject: [PATCH 4/7] consider node env for sending emails --- backend/src/config/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index f65a0f28b..8ffec33ef 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -67,7 +67,7 @@ const loginServer = { const email = { // eslint-disable-next-line no-unneeded-ternary - EMAIL: process.env.EMAIL === 'false' ? false : true, + EMAIL: process.env.EMAIL === 'false' ? false : process.env.NODE_ENV !== 'development', EMAIL_TEST_MODUS: process.env.EMAIL_TEST_MODUS === 'true' || false, EMAIL_TEST_RECEIVER: process.env.EMAIL_TEST_RECEIVER || 'stage1@gradido.net', EMAIL_USERNAME: process.env.EMAIL_USERNAME || 'null', From 881e38f22b168a0533d61f211b63dcc2c51a8260 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 16 Dec 2022 13:05:57 +0100 Subject: [PATCH 5/7] set email disabled and tls enabled as defaults in backend config --- backend/src/config/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 6ae6e24f0..76a87976a 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -66,8 +66,7 @@ const loginServer = { } const email = { - // eslint-disable-next-line no-unneeded-ternary - EMAIL: process.env.EMAIL === 'false' ? false : process.env.NODE_ENV !== 'development', + EMAIL: process.env.EMAIL === 'true' || false, EMAIL_TEST_MODUS: process.env.EMAIL_TEST_MODUS === 'true' || false, EMAIL_TEST_RECEIVER: process.env.EMAIL_TEST_RECEIVER || 'stage1@gradido.net', EMAIL_USERNAME: process.env.EMAIL_USERNAME || 'null', @@ -75,7 +74,8 @@ const email = { EMAIL_PASSWORD: process.env.EMAIL_PASSWORD || 'null', EMAIL_SMTP_URL: process.env.EMAIL_SMTP_URL || 'mailserver', EMAIL_SMTP_PORT: process.env.EMAIL_SMTP_PORT || '1025', - EMAIL_TLS: process.env.EMAIL_TLS === 'true' || false, + // eslint-disable-next-line no-unneeded-ternary + EMAIL_TLS: process.env.EMAIL_TLS === 'false' ? false : true, EMAIL_LINK_VERIFICATION: process.env.EMAIL_LINK_VERIFICATION || 'http://localhost/checkEmail/{optin}{code}', EMAIL_LINK_SETPASSWORD: From 36204195656cc142a3d6ecbad921d5407d3e88cc Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 16 Dec 2022 13:53:19 +0100 Subject: [PATCH 6/7] adapt emailer config to config changes --- backend/src/emails/sendEmailTranslated.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/emails/sendEmailTranslated.ts b/backend/src/emails/sendEmailTranslated.ts index 69008c00e..5652b3424 100644 --- a/backend/src/emails/sendEmailTranslated.ts +++ b/backend/src/emails/sendEmailTranslated.ts @@ -41,7 +41,7 @@ export const sendEmailTranslated = async (params: { host: CONFIG.EMAIL_SMTP_URL, port: Number(CONFIG.EMAIL_SMTP_PORT), secure: false, // true for 465, false for other ports - requireTLS: true, + requireTLS: CONFIG.EMAIL_TLS, auth: { user: CONFIG.EMAIL_USERNAME, pass: CONFIG.EMAIL_PASSWORD, From 1e265b1078c10cfb2a7aeaebeaecbca4e6983780 Mon Sep 17 00:00:00 2001 From: mahula Date: Tue, 10 Jan 2023 11:07:16 +0100 Subject: [PATCH 7/7] set email username and password to empty string in backend config --- backend/src/config/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 22a509080..6258eb36a 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -69,9 +69,9 @@ const email = { EMAIL: process.env.EMAIL === 'true' || false, EMAIL_TEST_MODUS: process.env.EMAIL_TEST_MODUS === 'true' || false, EMAIL_TEST_RECEIVER: process.env.EMAIL_TEST_RECEIVER || 'stage1@gradido.net', - EMAIL_USERNAME: process.env.EMAIL_USERNAME || 'null', + EMAIL_USERNAME: process.env.EMAIL_USERNAME || '', EMAIL_SENDER: process.env.EMAIL_SENDER || 'info@gradido.net', - EMAIL_PASSWORD: process.env.EMAIL_PASSWORD || 'null', + EMAIL_PASSWORD: process.env.EMAIL_PASSWORD || '', EMAIL_SMTP_URL: process.env.EMAIL_SMTP_URL || 'mailserver', EMAIL_SMTP_PORT: process.env.EMAIL_SMTP_PORT || '1025', // eslint-disable-next-line no-unneeded-ternary