@ -18,6 +18,7 @@ import (
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
"github.com/gogits/gogs/modules/setting"
"github.com/jaytaylor/html2text"
)
)
type Message struct {
type Message struct {
@ -26,14 +27,21 @@ type Message struct {
}
}
// NewMessageFrom creates new mail message object with custom From header.
// 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 , html body string ) * Message {
msg := gomail . NewMessage ( )
msg := gomail . NewMessage ( )
msg . SetHeader ( "From" , from )
msg . SetHeader ( "From" , from )
msg . SetHeader ( "To" , to ... )
msg . SetHeader ( "To" , to ... )
msg . SetHeader ( "Subject" , subject )
msg . SetHeader ( "Subject" , subject )
msg . SetDateHeader ( "Date" , time . Now ( ) )
msg . SetDateHeader ( "Date" , time . Now ( ) )
body , err := html2text . FromString ( htmlbody )
if err != nil {
// TODO: report error ?
msg . SetBody ( "text/html" , htmlbody )
} else {
msg . SetBody ( "text/plain" , body )
msg . SetBody ( "text/plain" , body )
msg . AddAlternative ( "text/html" , body )
// TODO: avoid this (use a configuration switch?)
msg . AddAlternative ( "text/html" , htmlbody )
}
return & Message {
return & Message {
Message : msg ,
Message : msg ,