From b5bfadf0b5365481179936fd3058134fd8be8e18 Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Fri, 17 May 2019 14:10:19 +0200 Subject: [PATCH] Allow to control emails prefix and signature with config (#1789) * Allow to control emails prefix and signature with config * Adapt email config according to @Chocobozzz review --- config/default.yaml | 6 ++++ server/initializers/config.ts | 8 +++++ server/lib/emailer.ts | 66 +++++++++++++++++------------------ 3 files changed, 47 insertions(+), 33 deletions(-) diff --git a/config/default.yaml b/config/default.yaml index 37ef4366f..27952d048 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -53,6 +53,12 @@ smtp: ca_file: null # Used for self signed certificates from_address: 'admin@example.com' +email: + body: + signature: "PeerTube" + object: + prefix: "[PeerTube]" + # From the project root directory storage: tmp: 'storage/tmp/' # Used to download data (imports etc), store uploaded files before processing... diff --git a/server/initializers/config.ts b/server/initializers/config.ts index 4f77e144d..723755c45 100644 --- a/server/initializers/config.ts +++ b/server/initializers/config.ts @@ -44,6 +44,14 @@ const CONFIG = { CA_FILE: config.get('smtp.ca_file'), FROM_ADDRESS: config.get('smtp.from_address') }, + EMAIL: { + BODY: { + SIGNATURE: config.get('email.body.signature') + }, + OBJECT: { + PREFIX: config.get('email.object.prefix') + ' ' + } + }, STORAGE: { TMP_DIR: buildPath(config.get('storage.tmp')), AVATARS_DIR: buildPath(config.get('storage.avatars')), diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index 8c06e9751..c4a5a5853 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -100,11 +100,11 @@ class Emailer { `You can view it on ${videoUrl} ` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: channelName + ' just published a new video', + subject: CONFIG.EMAIL.OBJECT.PREFIX + channelName + ' just published a new video', text } @@ -119,11 +119,11 @@ class Emailer { `Your ${followType} ${followingName} has a new subscriber: ${followerName}` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: 'New follower on your channel ' + followingName, + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New follower on your channel ' + followingName, text } @@ -137,11 +137,11 @@ class Emailer { `Your instance has a new follower: ${actorFollow.ActorFollower.url}${awaitingApproval}` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: 'New instance follower', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New instance follower', text } @@ -157,11 +157,11 @@ class Emailer { `You can view it on ${videoUrl} ` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: `Your video ${video.name} is published`, + subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video ${video.name} is published`, text } @@ -177,11 +177,11 @@ class Emailer { `You can view the imported video on ${videoUrl} ` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: `Your video import ${videoImport.getTargetIdentifier()} is finished`, + subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} is finished`, text } @@ -197,11 +197,11 @@ class Emailer { `See your videos import dashboard for more information: ${importUrl}` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: `Your video import ${videoImport.getTargetIdentifier()} encountered an error`, + subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} encountered an error`, text } @@ -219,11 +219,11 @@ class Emailer { `You can view it on ${commentUrl} ` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: 'New comment on your video ' + video.name, + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New comment on your video ' + video.name, text } @@ -241,11 +241,11 @@ class Emailer { `You can view the comment on ${commentUrl} ` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: 'Mention on video ' + video.name, + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Mention on video ' + video.name, text } @@ -258,11 +258,11 @@ class Emailer { const text = `Hi,\n\n` + `${WEBSERVER.HOST} received an abuse for the following video ${videoUrl}\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: '[PeerTube] Received a video abuse', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Received a video abuse', text } @@ -281,11 +281,11 @@ class Emailer { `A full list of auto-blacklisted videos can be reviewed here: ${VIDEO_AUTO_BLACKLIST_URL}` + `\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: '[PeerTube] An auto-blacklisted video is awaiting review', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'An auto-blacklisted video is awaiting review', text } @@ -296,11 +296,11 @@ class Emailer { const text = `Hi,\n\n` + `User ${user.username} just registered on ${WEBSERVER.HOST} PeerTube instance.\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: '[PeerTube] New user registration on ' + WEBSERVER.HOST, + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New user registration on ' + WEBSERVER.HOST, text } @@ -318,11 +318,11 @@ class Emailer { blockedString + '\n\n' + 'Cheers,\n' + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: `[PeerTube] Video ${videoName} blacklisted`, + subject: CONFIG.EMAIL.OBJECT.PREFIX + `Video ${videoName} blacklisted`, text } @@ -336,11 +336,11 @@ class Emailer { `Your video ${video.name} (${videoUrl}) on ${WEBSERVER.HOST} has been unblacklisted.` + '\n\n' + 'Cheers,\n' + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to, - subject: `[PeerTube] Video ${video.name} unblacklisted`, + subject: CONFIG.EMAIL.OBJECT.PREFIX + `Video ${video.name} unblacklisted`, text } @@ -353,11 +353,11 @@ class Emailer { `Please follow this link to reset it: ${resetPasswordUrl}\n\n` + `If you are not the person who initiated this request, please ignore this email.\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to: [ to ], - subject: 'Reset your PeerTube password', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Reset your password', text } @@ -370,11 +370,11 @@ class Emailer { `Please follow this link to verify this email belongs to you: ${verifyEmailUrl}\n\n` + `If you are not the person who initiated this request, please ignore this email.\n\n` + `Cheers,\n` + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const emailPayload: EmailPayload = { to: [ to ], - subject: 'Verify your PeerTube email', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Verify your email', text } @@ -390,12 +390,12 @@ class Emailer { blockedString + '\n\n' + 'Cheers,\n' + - `PeerTube.` + `${CONFIG.EMAIL.BODY.SIGNATURE}` const to = user.email const emailPayload: EmailPayload = { to: [ to ], - subject: '[PeerTube] Account ' + blockedWord, + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Account ' + blockedWord, text } @@ -415,7 +415,7 @@ class Emailer { fromDisplayName: fromEmail, replyTo: fromEmail, to: [ CONFIG.ADMIN.EMAIL ], - subject: '[PeerTube] Contact form submitted', + subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Contact form submitted', text }