mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09: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