That option is needed for outlook.com and Office 365, resolves #1472.
78 lines
1.4 KiB
Go
78 lines
1.4 KiB
Go
package email
|
|
|
|
import "time"
|
|
|
|
// Option func type
|
|
type Option func(s *Sender)
|
|
|
|
// SMTP sets SMTP client
|
|
func SMTP(smtp SMTPClient) Option {
|
|
return func(s *Sender) {
|
|
s.smtpClient = smtp
|
|
}
|
|
}
|
|
|
|
// Log sets the logger for the email package
|
|
func Log(l Logger) Option {
|
|
return func(s *Sender) {
|
|
s.logger = l
|
|
}
|
|
}
|
|
|
|
// Port sets SMTP port
|
|
func Port(port int) Option {
|
|
return func(s *Sender) {
|
|
s.port = port
|
|
}
|
|
}
|
|
|
|
// ContentType sets content type of the email
|
|
func ContentType(contentType string) Option {
|
|
return func(s *Sender) {
|
|
s.contentType = contentType
|
|
}
|
|
}
|
|
|
|
// Charset sets content charset of the email
|
|
func Charset(charset string) Option {
|
|
return func(s *Sender) {
|
|
s.contentCharset = charset
|
|
}
|
|
}
|
|
|
|
// TLS enables TLS support
|
|
func TLS(enabled bool) Option {
|
|
return func(s *Sender) {
|
|
s.tls = enabled
|
|
}
|
|
}
|
|
|
|
// STARTTLS enables STARTTLS support
|
|
func STARTTLS(enabled bool) Option {
|
|
return func(s *Sender) {
|
|
s.starttls = enabled
|
|
}
|
|
}
|
|
|
|
// Auth sets smtp username and password
|
|
func Auth(smtpUserName, smtpPasswd string) Option {
|
|
return func(s *Sender) {
|
|
s.smtpUserName = smtpUserName
|
|
s.smtpPassword = smtpPasswd
|
|
}
|
|
}
|
|
|
|
// LoginAuth sets LOGIN auth method
|
|
func LoginAuth() Option {
|
|
return func(s *Sender) {
|
|
s.authMethod = authMethodLogin
|
|
}
|
|
}
|
|
|
|
// TimeOut sets smtp timeout
|
|
func TimeOut(timeOut time.Duration) Option {
|
|
return func(s *Sender) {
|
|
s.timeOut = timeOut
|
|
}
|
|
}
|