diff options
Diffstat (limited to 'server/lib')
-rw-r--r-- | server/lib/emailer.ts | 18 | ||||
-rw-r--r-- | server/lib/job-queue/handlers/email.ts | 6 |
2 files changed, 16 insertions, 8 deletions
diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index f384a254e..99010f473 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts | |||
@@ -361,7 +361,8 @@ class Emailer { | |||
361 | 'PeerTube.' | 361 | 'PeerTube.' |
362 | 362 | ||
363 | const emailPayload: EmailPayload = { | 363 | const emailPayload: EmailPayload = { |
364 | from: fromEmail, | 364 | fromDisplayName: fromEmail, |
365 | replyTo: fromEmail, | ||
365 | to: [ CONFIG.ADMIN.EMAIL ], | 366 | to: [ CONFIG.ADMIN.EMAIL ], |
366 | subject: '[PeerTube] Contact form submitted', | 367 | subject: '[PeerTube] Contact form submitted', |
367 | text | 368 | text |
@@ -370,16 +371,21 @@ class Emailer { | |||
370 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) | 371 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) |
371 | } | 372 | } |
372 | 373 | ||
373 | sendMail (to: string[], subject: string, text: string, from?: string) { | 374 | sendMail (options: EmailPayload) { |
374 | if (!Emailer.isEnabled()) { | 375 | if (!Emailer.isEnabled()) { |
375 | throw new Error('Cannot send mail because SMTP is not configured.') | 376 | throw new Error('Cannot send mail because SMTP is not configured.') |
376 | } | 377 | } |
377 | 378 | ||
379 | const fromDisplayName = options.fromDisplayName | ||
380 | ? options.fromDisplayName | ||
381 | : CONFIG.WEBSERVER.HOST | ||
382 | |||
378 | return this.transporter.sendMail({ | 383 | return this.transporter.sendMail({ |
379 | from: from || CONFIG.SMTP.FROM_ADDRESS, | 384 | from: `"${fromDisplayName}" <${CONFIG.SMTP.FROM_ADDRESS}>`, |
380 | to: to.join(','), | 385 | replyTo: options.replyTo, |
381 | subject, | 386 | to: options.to.join(','), |
382 | text | 387 | subject: options.subject, |
388 | text: options.text | ||
383 | }) | 389 | }) |
384 | } | 390 | } |
385 | 391 | ||
diff --git a/server/lib/job-queue/handlers/email.ts b/server/lib/job-queue/handlers/email.ts index 220d0af32..2ba39a156 100644 --- a/server/lib/job-queue/handlers/email.ts +++ b/server/lib/job-queue/handlers/email.ts | |||
@@ -6,14 +6,16 @@ export type EmailPayload = { | |||
6 | to: string[] | 6 | to: string[] |
7 | subject: string | 7 | subject: string |
8 | text: string | 8 | text: string |
9 | from?: string | 9 | |
10 | fromDisplayName?: string | ||
11 | replyTo?: string | ||
10 | } | 12 | } |
11 | 13 | ||
12 | async function processEmail (job: Bull.Job) { | 14 | async function processEmail (job: Bull.Job) { |
13 | const payload = job.data as EmailPayload | 15 | const payload = job.data as EmailPayload |
14 | logger.info('Processing email in job %d.', job.id) | 16 | logger.info('Processing email in job %d.', job.id) |
15 | 17 | ||
16 | return Emailer.Instance.sendMail(payload.to, payload.subject, payload.text, payload.from) | 18 | return Emailer.Instance.sendMail(payload) |
17 | } | 19 | } |
18 | 20 | ||
19 | // --------------------------------------------------------------------------- | 21 | // --------------------------------------------------------------------------- |