summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Saurel <rems4e@users.noreply.github.com>2017-09-21 06:29:45 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-09-21 12:29:45 +0800
commit66bc0ac251f564491ed0a6d5d4cfa0a11af09303 (patch)
treefa07c36ff406ec748e628f64e997860a2802ee20
parent1fbfccb4fc9fc99405174b529206524179177474 (diff)
downloadgitea-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.go2
-rw-r--r--modules/mailer/mailer.go6
-rw-r--r--modules/setting/setting.go2
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")