diff --git a/config/config.go b/config/config.go index 76e8846..812e00e 100644 --- a/config/config.go +++ b/config/config.go @@ -10,6 +10,7 @@ import ( "html/template" "io/ioutil" "log" + "net/mail" ) // A Config holds all the constants for the programm. @@ -122,6 +123,21 @@ func validateConfig(conf *Config) error { err = fmt.Errorf("Validating config: Mailer type must be 'Stdout' or 'Smtp', but is '%s'.", conf.Mailer.Type) log.Println(err.Error()) } + mailFromAddress, mailFromAddressErr := mail.ParseAddress(conf.Mailer.FromAddress) + if !(mailFromAddressErr == nil) { + err = fmt.Errorf("Validating config: Mail FromAddress could not be parsed (%w)", mailFromAddressErr) + log.Println(err) + } else { + if !(mailFromAddress.Name == "") { + err = fmt.Errorf("Validating config: Mail FromAddress must not contain a name value, but has '%s'", mailFromAddress.Name) + log.Println(err) + } + } + _, mailFromNameErr := mail.ParseAddress(string(conf.Mailer.FromName)) + if !(mailFromNameErr == nil) { + err = fmt.Errorf("Validating config: Mail FromName could not be parsed (%w)", mailFromNameErr) + log.Println(err) + } if !(conf.SQL.Type == "SQLite" || conf.SQL.Type == "Mysql") { err = fmt.Errorf("Validating config: SQL type must be 'SQLite' or 'Mysql', but is '%s'.", conf.SQL.Type) log.Println(err.Error())