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"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"heckel.io/ntfy/util"
|
"heckel.io/ntfy/util"
|
||||||
|
"mime"
|
||||||
"net"
|
"net"
|
||||||
"net/smtp"
|
"net/smtp"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -28,6 +29,7 @@ func (s *smtpMailer) Send(senderIP, to string, m *message) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
println(message)
|
||||||
auth := smtp.PlainAuth("", s.config.SMTPUser, s.config.SMTPPass, host)
|
auth := smtp.PlainAuth("", s.config.SMTPUser, s.config.SMTPPass, host)
|
||||||
return smtp.SendMail(s.config.SMTPAddr, auth, s.config.SMTPFrom, []string{to}, []byte(message))
|
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 != "" {
|
if trailer != "" {
|
||||||
message += "\n\n" + trailer
|
message += "\n\n" + trailer
|
||||||
}
|
}
|
||||||
body := `Content-Type: text/plain; charset="utf-8"
|
subject = mime.BEncoding.Encode("utf-8", subject)
|
||||||
From: "{shortTopicURL}" <{from}>
|
body := `From: "{shortTopicURL}" <{from}>
|
||||||
To: {to}
|
To: {to}
|
||||||
Subject: {subject}
|
Subject: {subject}
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
{message}
|
{message}
|
||||||
|
|
||||||
|
|
|
@ -13,10 +13,10 @@ func TestFormatMail_Basic(t *testing.T) {
|
||||||
Topic: "alerts",
|
Topic: "alerts",
|
||||||
Message: "A simple message",
|
Message: "A simple message",
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
To: phil@example.com
|
||||||
Subject: A simple message
|
Subject: A simple message
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
A simple message
|
A simple message
|
||||||
|
|
||||||
|
@ -34,10 +34,10 @@ func TestFormatMail_JustEmojis(t *testing.T) {
|
||||||
Message: "A simple message",
|
Message: "A simple message",
|
||||||
Tags: []string{"grinning"},
|
Tags: []string{"grinning"},
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
To: phil@example.com
|
||||||
Subject: 😀 A simple message
|
Subject: =?utf-8?b?8J+YgCBBIHNpbXBsZSBtZXNzYWdl?=
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
A simple message
|
A simple message
|
||||||
|
|
||||||
|
@ -55,10 +55,10 @@ func TestFormatMail_JustOtherTags(t *testing.T) {
|
||||||
Message: "A simple message",
|
Message: "A simple message",
|
||||||
Tags: []string{"not-an-emoji"},
|
Tags: []string{"not-an-emoji"},
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
To: phil@example.com
|
||||||
Subject: A simple message
|
Subject: A simple message
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
A simple message
|
A simple message
|
||||||
|
|
||||||
|
@ -78,10 +78,10 @@ func TestFormatMail_JustPriority(t *testing.T) {
|
||||||
Message: "A simple message",
|
Message: "A simple message",
|
||||||
Priority: 2,
|
Priority: 2,
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
To: phil@example.com
|
||||||
Subject: A simple message
|
Subject: A simple message
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
A simple message
|
A simple message
|
||||||
|
|
||||||
|
@ -101,10 +101,10 @@ func TestFormatMail_UTF8Subject(t *testing.T) {
|
||||||
Message: "A simple message",
|
Message: "A simple message",
|
||||||
Title: " :: A not so simple title öäüß ¡Hola, señor!",
|
Title: " :: A not so simple title öäüß ¡Hola, señor!",
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
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
|
A simple message
|
||||||
|
|
||||||
|
@ -124,10 +124,10 @@ func TestFormatMail_WithAllTheThings(t *testing.T) {
|
||||||
Title: "Oh no 🙈\nThis is a message across\nmultiple lines",
|
Title: "Oh no 🙈\nThis is a message across\nmultiple lines",
|
||||||
Message: "A message that contains monkeys 🙉\nNo really, though. Monkeys!",
|
Message: "A message that contains monkeys 🙉\nNo really, though. Monkeys!",
|
||||||
})
|
})
|
||||||
expected := `Content-Type: text/plain; charset="utf-8"
|
expected := `From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
||||||
From: "ntfy.sh/alerts" <ntfy@ntfy.sh>
|
|
||||||
To: phil@example.com
|
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 🙉
|
A message that contains monkeys 🙉
|
||||||
No really, though. Monkeys!
|
No really, though. Monkeys!
|
||||||
|
|
Loading…
Reference in a new issue