diff options
author | Rémi Saurel <rems4e@users.noreply.github.com> | 2017-09-21 06:29:45 +0200 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-09-21 12:29:45 +0800 |
commit | 66bc0ac251f564491ed0a6d5d4cfa0a11af09303 (patch) | |
tree | fa07c36ff406ec748e628f64e997860a2802ee20 | |
parent | 1fbfccb4fc9fc99405174b529206524179177474 (diff) | |
download | gitea-66bc0ac251f564491ed0a6d5d4cfa0a11af09303.tar.gz gitea-66bc0ac251f564491ed0a6d5d4cfa0a11af09303.zip |
Fix sending mail with a non-latin display name. #2102 (#2559)
* Fix sending mail with a non-latin display name. #2102
Signed-off-by: Rémi Saurel <contact@remi-saurel.com>
* Take into account the possibility that setting.MailService.From is in `name <email@address>` format. #2102
Signed-off-by: Rémi Saurel <contact@remi-saurel.com>
-rw-r--r-- | models/mail.go | 2 | ||||
-rw-r--r-- | modules/mailer/mailer.go | 6 | ||||
-rw-r--r-- | modules/setting/setting.go | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/models/mail.go b/models/mail.go index b7d24a06a1..afcddb6d23 100644 --- a/models/mail.go +++ b/models/mail.go @@ -167,7 +167,7 @@ func composeIssueCommentMessage(issue *Issue, doer *User, comment *Comment, tplN log.Error(3, "Template: %v", err) } - msg := mailer.NewMessageFrom(tos, fmt.Sprintf(`"%s" <%s>`, doer.DisplayName(), setting.MailService.FromEmail), subject, content.String()) + msg := mailer.NewMessageFrom(tos, doer.DisplayName(), setting.MailService.FromEmail, subject, content.String()) msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info) return msg } diff --git a/modules/mailer/mailer.go b/modules/mailer/mailer.go index 5b28f92c47..0bb78de92a 100644 --- a/modules/mailer/mailer.go +++ b/modules/mailer/mailer.go @@ -31,11 +31,11 @@ type Message struct { } // NewMessageFrom creates new mail message object with custom From header. -func NewMessageFrom(to []string, from, subject, body string) *Message { +func NewMessageFrom(to []string, fromDisplayName, fromAddress, subject, body string) *Message { log.Trace("NewMessageFrom (body):\n%s", body) msg := gomail.NewMessage() - msg.SetHeader("From", from) + msg.SetAddressHeader("From", fromAddress, fromDisplayName) msg.SetHeader("To", to...) msg.SetHeader("Subject", subject) msg.SetDateHeader("Date", time.Now()) @@ -58,7 +58,7 @@ func NewMessageFrom(to []string, from, subject, body string) *Message { // NewMessage creates new mail message object with default From header. func NewMessage(to []string, subject, body string) *Message { - return NewMessageFrom(to, setting.MailService.From, subject, body) + return NewMessageFrom(to, setting.MailService.FromName, setting.MailService.FromEmail, subject, body) } type loginAuth struct { diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 4932f51a68..f594125503 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -1287,6 +1287,7 @@ type Mailer struct { QueueLength int Name string From string + FromName string FromEmail string SendAsPlainText bool @@ -1345,6 +1346,7 @@ func newMailService() { if err != nil { log.Fatal(4, "Invalid mailer.FROM (%s): %v", MailService.From, err) } + MailService.FromName = parsed.Name MailService.FromEmail = parsed.Address log.Info("Mail Service Enabled") |