mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	Merge pull request #766 from phsmit/correct_from
Correct usage of FROM in email creation
This commit is contained in:
		@@ -98,7 +98,7 @@ SUBJECT = %(APP_NAME)s
 | 
				
			|||||||
HOST =
 | 
					HOST =
 | 
				
			||||||
; Do not verify the certificate of the server. Only use this for self-signed certificates
 | 
					; Do not verify the certificate of the server. Only use this for self-signed certificates
 | 
				
			||||||
SKIP_VERIFY = 
 | 
					SKIP_VERIFY = 
 | 
				
			||||||
; Mail from address
 | 
					; Mail from address, RFC 5322. This can be just an email address, or the "Name" <email@example.com> format 
 | 
				
			||||||
FROM =
 | 
					FROM =
 | 
				
			||||||
; Mailer user name and password
 | 
					; Mailer user name and password
 | 
				
			||||||
USER =
 | 
					USER =
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,9 +31,7 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Create New mail message use MailFrom and MailUser
 | 
					// Create New mail message use MailFrom and MailUser
 | 
				
			||||||
func NewMailMessageFrom(To []string, from, subject, body string) Message {
 | 
					func NewMailMessageFrom(To []string, from, subject, body string) Message {
 | 
				
			||||||
	msg := NewHtmlMessage(To, from, subject, body)
 | 
						return NewHtmlMessage(To, from, subject, body)
 | 
				
			||||||
	msg.User = setting.MailService.User
 | 
					 | 
				
			||||||
	return msg
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Create New mail message use MailFrom and MailUser
 | 
					// Create New mail message use MailFrom and MailUser
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"crypto/tls"
 | 
						"crypto/tls"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"net"
 | 
						"net"
 | 
				
			||||||
 | 
						"net/mail"
 | 
				
			||||||
	"net/smtp"
 | 
						"net/smtp"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -20,7 +21,6 @@ type Message struct {
 | 
				
			|||||||
	From    string
 | 
						From    string
 | 
				
			||||||
	Subject string
 | 
						Subject string
 | 
				
			||||||
	Body    string
 | 
						Body    string
 | 
				
			||||||
	User    string
 | 
					 | 
				
			||||||
	Type    string
 | 
						Type    string
 | 
				
			||||||
	Massive bool
 | 
						Massive bool
 | 
				
			||||||
	Info    string
 | 
						Info    string
 | 
				
			||||||
@@ -35,8 +35,7 @@ func (m Message) Content() string {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// create mail content
 | 
						// create mail content
 | 
				
			||||||
	content := "From: \"" + m.From + "\" <" + m.User +
 | 
						content := "From: " + m.From + "\r\nSubject: " + m.Subject + "\r\nContent-Type: " + contentType + "\r\n\r\n" + m.Body
 | 
				
			||||||
		">\r\nSubject: " + m.Subject + "\r\nContent-Type: " + contentType + "\r\n\r\n" + m.Body
 | 
					 | 
				
			||||||
	return content
 | 
						return content
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -67,7 +66,7 @@ func processMailQueue() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// sendMail allows mail with self-signed certificates.
 | 
					// sendMail allows mail with self-signed certificates.
 | 
				
			||||||
func sendMail(settings *setting.Mailer, from string, recipients []string, msgContent []byte) error {
 | 
					func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) error {
 | 
				
			||||||
	host, port, err := net.SplitHostPort(settings.Host)
 | 
						host, port, err := net.SplitHostPort(settings.Host)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@@ -122,8 +121,12 @@ func sendMail(settings *setting.Mailer, from string, recipients []string, msgCon
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = client.Mail(from); err != nil {
 | 
						if fromAddress, err := mail.ParseAddress(settings.From); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							if err = client.Mail(fromAddress.Address); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, rec := range recipients {
 | 
						for _, rec := range recipients {
 | 
				
			||||||
@@ -165,7 +168,7 @@ func Send(msg *Message) (int, error) {
 | 
				
			|||||||
		num := 0
 | 
							num := 0
 | 
				
			||||||
		for _, to := range msg.To {
 | 
							for _, to := range msg.To {
 | 
				
			||||||
			body := []byte("To: " + to + "\r\n" + content)
 | 
								body := []byte("To: " + to + "\r\n" + content)
 | 
				
			||||||
			err := sendMail(setting.MailService, msg.From, []string{to}, body)
 | 
								err := sendMail(setting.MailService, []string{to}, body)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return num, err
 | 
									return num, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -176,7 +179,7 @@ func Send(msg *Message) (int, error) {
 | 
				
			|||||||
		body := []byte("To: " + strings.Join(msg.To, ";") + "\r\n" + content)
 | 
							body := []byte("To: " + strings.Join(msg.To, ";") + "\r\n" + content)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// send to multiple emails in one message
 | 
							// send to multiple emails in one message
 | 
				
			||||||
		err := sendMail(setting.MailService, msg.From, msg.To, body)
 | 
							err := sendMail(setting.MailService, msg.To, body)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return 0, err
 | 
								return 0, err
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user