Fix santa bug, email subject encoding, closes #65
This commit is contained in:
parent
9a0f1f22b8
commit
ec7e58a6a2
2 changed files with 20 additions and 17 deletions
|
@ -5,6 +5,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"heckel.io/ntfy/util"
|
||||
"mime"
|
||||
"net"
|
||||
"net/smtp"
|
||||
"strings"
|
||||
|
@ -28,6 +29,7 @@ func (s *smtpMailer) Send(senderIP, to string, m *message) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
println(message)
|
||||
auth := smtp.PlainAuth("", s.config.SMTPUser, s.config.SMTPPass, host)
|
||||
return smtp.SendMail(s.config.SMTPAddr, auth, s.config.SMTPFrom, []string{to}, []byte(message))
|
||||
}
|
||||
|
@ -66,10 +68,11 @@ func formatMail(baseURL, senderIP, from, to string, m *message) (string, error)
|
|||
if trailer != "" {
|
||||
message += "\n\n" + trailer
|
||||
}
|
||||
body := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "{shortTopicURL}" <{from}>
|
||||
subject = mime.BEncoding.Encode("utf-8", subject)
|
||||
body := `From: "{shortTopicURL}" <{from}>
|
||||
To: {to}
|
||||
Subject: {subject}
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
{message}
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@ func TestFormatMail_Basic(t *testing.T) {
|
|||
Topic: "alerts",
|
||||
Message: "A simple message",
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: A simple message
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A simple message
|
||||
|
||||
|
@ -34,10 +34,10 @@ func TestFormatMail_JustEmojis(t *testing.T) {
|
|||
Message: "A simple message",
|
||||
Tags: []string{"grinning"},
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: 😀 A simple message
|
||||
Subject: =?utf-8?b?8J+YgCBBIHNpbXBsZSBtZXNzYWdl?=
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A simple message
|
||||
|
||||
|
@ -55,10 +55,10 @@ func TestFormatMail_JustOtherTags(t *testing.T) {
|
|||
Message: "A simple message",
|
||||
Tags: []string{"not-an-emoji"},
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: A simple message
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A simple message
|
||||
|
||||
|
@ -78,10 +78,10 @@ func TestFormatMail_JustPriority(t *testing.T) {
|
|||
Message: "A simple message",
|
||||
Priority: 2,
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: A simple message
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A simple message
|
||||
|
||||
|
@ -101,10 +101,10 @@ func TestFormatMail_UTF8Subject(t *testing.T) {
|
|||
Message: "A simple message",
|
||||
Title: " :: A not so simple title öäüß ¡Hola, señor!",
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: :: A not so simple title öäüß ¡Hola, señor!
|
||||
Subject: =?utf-8?b?IDo6IEEgbm90IHNvIHNpbXBsZSB0aXRsZSDDtsOkw7zDnyDCoUhvbGEsIHNl?= =?utf-8?b?w7FvciE=?=
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A simple message
|
||||
|
||||
|
@ -124,10 +124,10 @@ func TestFormatMail_WithAllTheThings(t *testing.T) {
|
|||
Title: "Oh no 🙈\nThis is a message across\nmultiple lines",
|
||||
Message: "A message that contains monkeys 🙉\nNo really, though. Monkeys!",
|
||||
})
|
||||
expected := `Content-Type: text/plain; charset="utf-8"
|
||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||
To: phil@example.com
|
||||
Subject: ⚠️ 💀 Oh no 🙈 This is a message across multiple lines
|
||||
Subject: =?utf-8?b?4pqg77iPIPCfkoAgT2ggbm8g8J+ZiCBUaGlzIGlzIGEgbWVzc2FnZSBhY3Jv?= =?utf-8?b?c3MgbXVsdGlwbGUgbGluZXM=?=
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
A message that contains monkeys 🙉
|
||||
No really, though. Monkeys!
|
||||
|
|
Loading…
Reference in a new issue