Allow to control emails prefix and signature with config (#1789)
authorYohan Boniface <yb@enix.org>
Fri, 17 May 2019 12:10:19 +0000 (14:10 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 17 May 2019 12:10:19 +0000 (14:10 +0200)
* Allow to control emails prefix and signature with config

* Adapt email config according to @Chocobozzz review

config/default.yaml
server/initializers/config.ts
server/lib/emailer.ts

index 37ef4366ff1a8a30ce902a189c1b8ce4c3528999..27952d04893be2889a696c22ab149b65e4bab092 100644 (file)
@@ -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...
index 4f77e144d0ef19a17133e4535e1b97a64dcdebd6..723755c458a4d2bb214509a03de34e6043bdaefe 100644 (file)
@@ -44,6 +44,14 @@ const CONFIG = {
     CA_FILE: config.get<string>('smtp.ca_file'),
     FROM_ADDRESS: config.get<string>('smtp.from_address')
   },
+  EMAIL: {
+    BODY: {
+      SIGNATURE: config.get<string>('email.body.signature')
+    },
+    OBJECT: {
+      PREFIX: config.get<string>('email.object.prefix') + ' '
+    }
+  },
   STORAGE: {
     TMP_DIR: buildPath(config.get<string>('storage.tmp')),
     AVATARS_DIR: buildPath(config.get<string>('storage.avatars')),
index 8c06e9751e9ea7af181afc9f68e07a87b1a60fd9..c4a5a5853f2a0cea4153a4641d55f2675e959deb 100644 (file)
@@ -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
     }