diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 62db26fb02..5733460306 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -1622,6 +1622,9 @@ LEVEL = Info ;; Prefix displayed before subject in mail ;SUBJECT_PREFIX = ;; +;; Set the Return-Path header where bounced e-mails will be sent to. +;RETURN_PATH = +;; ;; Mail server protocol. One of "smtp", "smtps", "smtp+starttls", "smtp+unix", "sendmail", "dummy". ;; - sendmail: use the operating system's `sendmail` command instead of SMTP. This is common on Linux systems. ;; - dummy: send email messages to the log as a testing phase. diff --git a/docs/content/administration/config-cheat-sheet.en-us.md b/docs/content/administration/config-cheat-sheet.en-us.md index 5066e0f879..92d479d929 100644 --- a/docs/content/administration/config-cheat-sheet.en-us.md +++ b/docs/content/administration/config-cheat-sheet.en-us.md @@ -752,6 +752,7 @@ and - `ENABLE_HELO`: **true**: Enable HELO operation. - `HELO_HOSTNAME`: **(retrieved from system)**: HELO hostname. - `FROM`: **_empty_**: Mail from address, RFC 5322. This can be just an email address, or the "Name" \ format. +- `RETURN_PATH`: **_empty_**: Set the Return-Path header where bounced e-mails will be sent to. - `ENVELOPE_FROM`: **_empty_**: Address set as the From address on the SMTP mail envelope. Set to `<>` to send an empty address. - `SUBJECT_PREFIX`: **_empty_**: Prefix to be placed before e-mail subject lines. - `SENDMAIL_PATH`: **sendmail**: The location of sendmail on the operating system (can be command or full path). diff --git a/modules/setting/mailer.go b/modules/setting/mailer.go index a2bc2df444..b97080041f 100644 --- a/modules/setting/mailer.go +++ b/modules/setting/mailer.go @@ -26,6 +26,7 @@ type Mailer struct { FromEmail string `ini:"-"` SendAsPlainText bool `ini:"SEND_AS_PLAIN_TEXT"` SubjectPrefix string `ini:"SUBJECT_PREFIX"` + ReturnPath string `ini:"RETURN_PATH"` // SMTP sender Protocol string `ini:"PROTOCOL"` diff --git a/services/mailer/mailer.go b/services/mailer/mailer.go index 5e8e3dbb38..12de06d5e1 100644 --- a/services/mailer/mailer.go +++ b/services/mailer/mailer.go @@ -57,11 +57,14 @@ func (m *Message) ToMessage() *gomail.Message { msg.SetHeader(header, m.Headers[header]...) } - if len(setting.MailService.SubjectPrefix) > 0 { + if setting.MailService.SubjectPrefix != "" { msg.SetHeader("Subject", setting.MailService.SubjectPrefix+" "+m.Subject) } else { msg.SetHeader("Subject", m.Subject) } + if setting.MailService.ReturnPath != "" { + msg.SetHeader("Return-Path", setting.MailService.ReturnPath) + } msg.SetDateHeader("Date", m.Date) msg.SetHeader("X-Auto-Response-Suppress", "All")