mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Do not write HTML in text/plain mail part (#2954)
* Do not write HTML in text/plain mail part Fixes #2928 * Pass text/plain first, text/html second * Do not send plain/text email if html2text failed (untested)
This commit is contained in:
		@@ -18,6 +18,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/gogits/gogs/modules/log"
 | 
			
		||||
	"github.com/gogits/gogs/modules/setting"
 | 
			
		||||
	"github.com/jaytaylor/html2text"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Message struct {
 | 
			
		||||
@@ -26,14 +27,21 @@ 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, from, subject, htmlbody string) *Message {
 | 
			
		||||
	msg := gomail.NewMessage()
 | 
			
		||||
	msg.SetHeader("From", from)
 | 
			
		||||
	msg.SetHeader("To", to...)
 | 
			
		||||
	msg.SetHeader("Subject", subject)
 | 
			
		||||
	msg.SetDateHeader("Date", time.Now())
 | 
			
		||||
	msg.SetBody("text/plain", body)
 | 
			
		||||
	msg.AddAlternative("text/html", body)
 | 
			
		||||
	body, err := html2text.FromString(htmlbody)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// TODO: report error ?
 | 
			
		||||
		msg.SetBody("text/html", htmlbody)
 | 
			
		||||
	} else {
 | 
			
		||||
		msg.SetBody("text/plain", body)
 | 
			
		||||
		// TODO: avoid this (use a configuration switch?)
 | 
			
		||||
		msg.AddAlternative("text/html", htmlbody)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &Message{
 | 
			
		||||
		Message: msg,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user