Skip to content

Commit 66bc0ac

Browse files
rems4elunny
authored andcommitted
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 <[email protected]> * Take into account the possibility that setting.MailService.From is in `name <email@address>` format. #2102 Signed-off-by: Rémi Saurel <[email protected]>
1 parent 1fbfccb commit 66bc0ac

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

models/mail.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func composeIssueCommentMessage(issue *Issue, doer *User, comment *Comment, tplN
167167
log.Error(3, "Template: %v", err)
168168
}
169169

170-
msg := mailer.NewMessageFrom(tos, fmt.Sprintf(`"%s" <%s>`, doer.DisplayName(), setting.MailService.FromEmail), subject, content.String())
170+
msg := mailer.NewMessageFrom(tos, doer.DisplayName(), setting.MailService.FromEmail, subject, content.String())
171171
msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info)
172172
return msg
173173
}

modules/mailer/mailer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ type Message struct {
3131
}
3232

3333
// NewMessageFrom creates new mail message object with custom From header.
34-
func NewMessageFrom(to []string, from, subject, body string) *Message {
34+
func NewMessageFrom(to []string, fromDisplayName, fromAddress, subject, body string) *Message {
3535
log.Trace("NewMessageFrom (body):\n%s", body)
3636

3737
msg := gomail.NewMessage()
38-
msg.SetHeader("From", from)
38+
msg.SetAddressHeader("From", fromAddress, fromDisplayName)
3939
msg.SetHeader("To", to...)
4040
msg.SetHeader("Subject", subject)
4141
msg.SetDateHeader("Date", time.Now())
@@ -58,7 +58,7 @@ func NewMessageFrom(to []string, from, subject, body string) *Message {
5858

5959
// NewMessage creates new mail message object with default From header.
6060
func NewMessage(to []string, subject, body string) *Message {
61-
return NewMessageFrom(to, setting.MailService.From, subject, body)
61+
return NewMessageFrom(to, setting.MailService.FromName, setting.MailService.FromEmail, subject, body)
6262
}
6363

6464
type loginAuth struct {

modules/setting/setting.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,6 +1287,7 @@ type Mailer struct {
12871287
QueueLength int
12881288
Name string
12891289
From string
1290+
FromName string
12901291
FromEmail string
12911292
SendAsPlainText bool
12921293

@@ -1345,6 +1346,7 @@ func newMailService() {
13451346
if err != nil {
13461347
log.Fatal(4, "Invalid mailer.FROM (%s): %v", MailService.From, err)
13471348
}
1349+
MailService.FromName = parsed.Name
13481350
MailService.FromEmail = parsed.Address
13491351

13501352
log.Info("Mail Service Enabled")

0 commit comments

Comments
 (0)