package config import ( "fmt" "github.com/go-playground/validator/v10" ) // SMTPConfig handles mandatory parameters for the STMP server connection type SMTPConfig struct { User string `validate:"required"` Password string `validate:"required"` URL string `validate:"required"` Port string `validate:"required"` } func NewSMTPConfig(user, password, url, port string) (SMTPConfig, error) { config := SMTPConfig{ User: user, Password: password, URL: url, Port: port, } validate := validator.New(validator.WithRequiredStructEnabled()) if err := validate.Struct(config); err != nil { return config, err } return config, nil } func (c SMTPConfig) GetFullURL() string { return fmt.Sprintf("%s:%s", c.URL, c.Port) }