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 }