aboutsummaryrefslogtreecommitdiff
path: root/utils/email/submit.go
blob: 82589e7a43092c9e7bb7e6d4c54cf09278ed6f23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package email

import (
	"dove/config"
	"dove/utils/logger"
	"fmt"
	"net/smtp"
)

func Submit(senderAddress string, recipients []string, rawMessage []byte) error {
	serverAddress := fmt.Sprintf("%s:%d", config.BindAddress, config.SmtpPort)

	logger.Debugf(LogPrefix, SubmittingMessage, senderAddress, recipients, serverAddress)

	var smtpAuth smtp.Auth
	if config.SMTP.AuthRequired {
		smtpAuth = smtp.PlainAuth("", config.SMTP.Username, config.SMTP.Password, config.BindAddress)
	}

	sendError := smtp.SendMail(serverAddress, smtpAuth, senderAddress, recipients, rawMessage)
	if sendError != nil {
		logger.Errorf(LogPrefix, SubmitFailed, sendError)
		return sendError
	}

	logger.Infof(LogPrefix, SubmitSuccess, senderAddress, recipients)
	return nil
}