diff --git a/backend/src/mailer/sendEMail.test.ts b/backend/src/mailer/sendEMail.test.ts deleted file mode 100644 index e062b71d8..000000000 --- a/backend/src/mailer/sendEMail.test.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { sendEMail } from './sendEMail' -import { createTransport } from 'nodemailer' -import CONFIG from '@/config' - -import { logger } from '@test/testSetup' - -CONFIG.EMAIL = false -CONFIG.EMAIL_SMTP_URL = 'EMAIL_SMTP_URL' -CONFIG.EMAIL_SMTP_PORT = '1234' -CONFIG.EMAIL_USERNAME = 'user' -CONFIG.EMAIL_PASSWORD = 'pwd' - -jest.mock('nodemailer', () => { - return { - __esModule: true, - createTransport: jest.fn(() => { - return { - sendMail: jest.fn(() => { - return { - messageId: 'message', - } - }), - } - }), - } -}) - -describe('sendEMail', () => { - let result: boolean - describe('config email is false', () => { - beforeEach(async () => { - jest.clearAllMocks() - result = await sendEMail({ - to: 'receiver@mail.org', - cc: 'support@gradido.net', - subject: 'Subject', - text: 'Text text text', - }) - }) - - it('logs warning', () => { - expect(logger.info).toBeCalledWith('Emails are disabled via config...') - }) - - it('returns false', () => { - expect(result).toBeFalsy() - }) - }) - - describe('config email is true', () => { - beforeEach(async () => { - jest.clearAllMocks() - CONFIG.EMAIL = true - result = await sendEMail({ - to: 'receiver@mail.org', - cc: 'support@gradido.net', - subject: 'Subject', - text: 'Text text text', - }) - }) - - it('calls the transporter', () => { - expect(createTransport).toBeCalledWith({ - host: 'EMAIL_SMTP_URL', - port: 1234, - secure: false, - requireTLS: true, - auth: { - user: 'user', - pass: 'pwd', - }, - }) - }) - - it('calls sendMail of transporter', () => { - expect((createTransport as jest.Mock).mock.results[0].value.sendMail).toBeCalledWith({ - from: `Gradido (nicht antworten) <${CONFIG.EMAIL_SENDER}>`, - to: 'receiver@mail.org', - cc: 'support@gradido.net', - subject: 'Subject', - text: 'Text text text', - }) - }) - - it('returns true', () => { - expect(result).toBeTruthy() - }) - }) - - describe('with email EMAIL_TEST_MODUS true', () => { - beforeEach(async () => { - jest.clearAllMocks() - CONFIG.EMAIL = true - CONFIG.EMAIL_TEST_MODUS = true - result = await sendEMail({ - to: 'receiver@mail.org', - cc: 'support@gradido.net', - subject: 'Subject', - text: 'Text text text', - }) - }) - - it('calls sendMail of transporter with faked to', () => { - expect((createTransport as jest.Mock).mock.results[0].value.sendMail).toBeCalledWith({ - from: `Gradido (nicht antworten) <${CONFIG.EMAIL_SENDER}>`, - to: CONFIG.EMAIL_TEST_RECEIVER, - cc: 'support@gradido.net', - subject: 'Subject', - text: 'Text text text', - }) - }) - }) -}) diff --git a/backend/src/mailer/sendEMail.ts b/backend/src/mailer/sendEMail.ts deleted file mode 100644 index 00282f232..000000000 --- a/backend/src/mailer/sendEMail.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { backendLogger as logger } from '@/server/logger' -import { createTransport } from 'nodemailer' - -import CONFIG from '@/config' - -export const sendEMail = async (emailDef: { - to: string - cc?: string - subject: string - text: string -}): Promise => { - logger.info( - `send Email: to=${emailDef.to}` + - (emailDef.cc ? `, cc=${emailDef.cc}` : '') + - `, subject=${emailDef.subject}, text=${emailDef.text}`, - ) - - if (!CONFIG.EMAIL) { - logger.info(`Emails are disabled via config...`) - return false - } - if (CONFIG.EMAIL_TEST_MODUS) { - logger.info( - `Testmodus=ON: change receiver from ${emailDef.to} to ${CONFIG.EMAIL_TEST_RECEIVER}`, - ) - emailDef.to = CONFIG.EMAIL_TEST_RECEIVER - } - const transporter = createTransport({ - host: CONFIG.EMAIL_SMTP_URL, - port: Number(CONFIG.EMAIL_SMTP_PORT), - secure: false, // true for 465, false for other ports - requireTLS: true, - auth: { - user: CONFIG.EMAIL_USERNAME, - pass: CONFIG.EMAIL_PASSWORD, - }, - }) - const info = await transporter.sendMail({ - ...emailDef, - from: `Gradido (nicht antworten) <${CONFIG.EMAIL_SENDER}>`, - }) - if (!info.messageId) { - logger.error('error sending notification email, but transaction succeed') - throw new Error('error sending notification email, but transaction succeed') - } - logger.info('send Email successfully.') - return true -}