Merge pull request #1067 from layzerar/fix_email_encoding
Fix email encoding issue
Этот коммит содержится в:
@@ -6,15 +6,22 @@ package utils
|
|||||||
import (
|
import (
|
||||||
l4g "code.google.com/p/log4go"
|
l4g "code.google.com/p/log4go"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/mattermost/platform/model"
|
"github.com/mattermost/platform/model"
|
||||||
"html"
|
|
||||||
"net"
|
"net"
|
||||||
"net/mail"
|
"net/mail"
|
||||||
"net/smtp"
|
"net/smtp"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func encodeRFC2047Word(s string) string {
|
||||||
|
// TODO: use `mime.BEncoding.Encode` instead when `go` >= 1.5
|
||||||
|
// return mime.BEncoding.Encode("utf-8", s)
|
||||||
|
dst := base64.StdEncoding.EncodeToString([]byte(s))
|
||||||
|
return "=?utf-8?b?" + dst + "?="
|
||||||
|
}
|
||||||
|
|
||||||
func connectToSMTPServer(config *model.Config) (net.Conn, *model.AppError) {
|
func connectToSMTPServer(config *model.Config) (net.Conn, *model.AppError) {
|
||||||
var conn net.Conn
|
var conn net.Conn
|
||||||
var err error
|
var err error
|
||||||
@@ -102,9 +109,10 @@ func SendMailUsingConfig(to, subject, body string, config *model.Config) *model.
|
|||||||
headers := make(map[string]string)
|
headers := make(map[string]string)
|
||||||
headers["From"] = fromMail.String()
|
headers["From"] = fromMail.String()
|
||||||
headers["To"] = toMail.String()
|
headers["To"] = toMail.String()
|
||||||
headers["Subject"] = html.UnescapeString(subject)
|
headers["Subject"] = encodeRFC2047Word(subject)
|
||||||
headers["MIME-version"] = "1.0"
|
headers["MIME-version"] = "1.0"
|
||||||
headers["Content-Type"] = "text/html"
|
headers["Content-Type"] = "text/html; charset=\"utf-8\""
|
||||||
|
headers["Content-Transfer-Encoding"] = "8bit"
|
||||||
headers["Date"] = time.Now().Format(time.RFC1123Z)
|
headers["Date"] = time.Now().Format(time.RFC1123Z)
|
||||||
|
|
||||||
message := ""
|
message := ""
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user