From f568f542664174f68729ba6ff324131b9f285fdf Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Tue, 1 Aug 2023 11:49:08 +0100 Subject: [PATCH] **Breaking Change**: fix(email): from address must be provided by operator if email is enabled (#1743) (#1745) This reverts commit 0a795c51f220d81f10f68ff4aa98fd9e3625e5ba. --- README.md | 4 ++-- docker-compose-speckle.yml | 1 + packages/server/.env-example | 2 +- packages/server/modules/emails/services/sending.ts | 3 ++- packages/server/modules/shared/helpers/envHelper.ts | 11 ++++++++++- utils/helm/speckle-server/values.schema.json | 2 +- utils/helm/speckle-server/values.yaml | 2 +- 7 files changed, 18 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4711d20ed..385b06885 100644 --- a/README.md +++ b/README.md @@ -117,9 +117,9 @@ Essentially, ensure you have **Volar** enabled, and the built in **TypeScript an We have a [Maildev](https://github.com/maildev/maildev) container available that you can use to see all e-mails sent out from the app. Make sure your `server` .env file is configured properly to use it: -``` +```bash EMAIL=true -EMAIL_FROM="speckle@speckle.local" +EMAIL_FROM="no-reply@example.org" EMAIL_HOST="localhost" EMAIL_PORT="1025" ``` diff --git a/docker-compose-speckle.yml b/docker-compose-speckle.yml index 291863c50..33519479d 100644 --- a/docker-compose-speckle.yml +++ b/docker-compose-speckle.yml @@ -51,6 +51,7 @@ services: S3_CREATE_BUCKET: 'true' S3_REGION: '' # optional, defaults to 'us-east-1' FILE_SIZE_LIMIT_MB: 100 + EMAIL_FROM: 'no-reply@example.org' preview-service: build: diff --git a/packages/server/.env-example b/packages/server/.env-example index 2ec1188b3..191a08a76 100644 --- a/packages/server/.env-example +++ b/packages/server/.env-example @@ -64,7 +64,7 @@ S3_CREATE_BUCKET="true" # Emails ############################################################ EMAIL=true -EMAIL_FROM="speckle@speckle.local" +EMAIL_FROM="no-reply@example.org" EMAIL_HOST="localhost" EMAIL_PORT="1025" diff --git a/packages/server/modules/emails/services/sending.ts b/packages/server/modules/emails/services/sending.ts index 4ece6bdef..c84c60c4b 100644 --- a/packages/server/modules/emails/services/sending.ts +++ b/packages/server/modules/emails/services/sending.ts @@ -1,5 +1,6 @@ import { logger } from '@/logging/logging' import { getTransporter } from '@/modules/emails/utils/transporter' +import { getEmailFromAddress } from '@/modules/shared/helpers/envHelper' export type SendEmailParams = { from?: string @@ -25,7 +26,7 @@ export async function sendEmail({ return false } try { - const emailFrom = process.env.EMAIL_FROM || 'no-reply@speckle.systems' + const emailFrom = getEmailFromAddress() await transporter.sendMail({ from: from || `"Speckle" <${emailFrom}>`, to, diff --git a/packages/server/modules/shared/helpers/envHelper.ts b/packages/server/modules/shared/helpers/envHelper.ts index dfa449064..2a8621ac3 100644 --- a/packages/server/modules/shared/helpers/envHelper.ts +++ b/packages/server/modules/shared/helpers/envHelper.ts @@ -144,7 +144,7 @@ export function getFrontendOrigin(forceFe2?: boolean) { export function getServerOrigin() { if (!process.env.CANONICAL_URL) { throw new MisconfiguredEnvironmentError( - 'Server origin env var (CANONICAL_URL) not configured' + 'Server origin environment variable (CANONICAL_URL) not configured' ) } @@ -204,3 +204,12 @@ export function getOnboardingStreamCacheBustNumber() { const val = process.env.ONBOARDING_STREAM_CACHE_BUST_NUMBER || '1' return parseInt(val) || 1 } + +export function getEmailFromAddress() { + if (!process.env.EMAIL_FROM) { + throw new MisconfiguredEnvironmentError( + 'Email From environment variable (EMAIL_FROM) is not configured' + ) + } + return process.env.EMAIL_FROM +} diff --git a/utils/helm/speckle-server/values.schema.json b/utils/helm/speckle-server/values.schema.json index fd3555f81..6639153e4 100644 --- a/utils/helm/speckle-server/values.schema.json +++ b/utils/helm/speckle-server/values.schema.json @@ -80,7 +80,7 @@ "docker_image_tag": { "type": "string", "description": "Speckle is published as a Docker Image. The version of the image which will be deployed is specified by this tag.", - "default": "2.13.3" + "default": "2" }, "imagePullPolicy": { "type": "string", diff --git a/utils/helm/speckle-server/values.yaml b/utils/helm/speckle-server/values.yaml index c3e63b86d..c338603ed 100644 --- a/utils/helm/speckle-server/values.yaml +++ b/utils/helm/speckle-server/values.yaml @@ -65,7 +65,7 @@ ingress: ## ## @param docker_image_tag Speckle is published as a Docker Image. The version of the image which will be deployed is specified by this tag. ## -docker_image_tag: 2.13.3 +docker_image_tag: '2' ## @param imagePullPolicy Determines the conditions when the Docker Images for Speckle should be pulled from the Image registry. ## ref: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy