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) }