diff --git a/.drone.star b/.drone.star index b161dd46c14..6889ae89521 100644 --- a/.drone.star +++ b/.drone.star @@ -138,6 +138,7 @@ config = { "NOTIFICATIONS_SMTP_HOST": "email", "NOTIFICATIONS_SMTP_PORT": "2500", "NOTIFICATIONS_SMTP_INSECURE": "true", + "NOTIFICATIONS_SMTP_SENDER": "ownCloud ", }, }, "apiAntivirus": { diff --git a/changelog/unreleased/enhancement-notifications-auto-auth-settings.md b/changelog/unreleased/enhancement-notifications-auto-auth-settings.md new file mode 100644 index 00000000000..7d16ab28cc0 --- /dev/null +++ b/changelog/unreleased/enhancement-notifications-auto-auth-settings.md @@ -0,0 +1,7 @@ +Enhancement: New value `auto` for NOTIFICATIONS_SMTP_AUTHENTICATION + +This cause the notifications service to automatically pick a suitable authentication +method to use with the configured SMTP server. This is also the new default behavior. +The previous default was to not use authentication at all. + +https://github.com/owncloud/ocis/issues/7356 diff --git a/services/notifications/pkg/channels/channels.go b/services/notifications/pkg/channels/channels.go index f3f8c1b76d7..d8d368a63ed 100644 --- a/services/notifications/pkg/channels/channels.go +++ b/services/notifications/pkg/channels/channels.go @@ -69,6 +69,8 @@ func (m Mail) getMailClient() (*mail.SMTPClient, error) { server.Authentication = mail.AuthCRAMMD5 case "none": server.Authentication = mail.AuthNone + case "auto", "": + server.Authentication = mail.AuthAuto default: return nil, errors.New("unknown mail authentication method") } diff --git a/services/notifications/pkg/config/config.go b/services/notifications/pkg/config/config.go index c93ca21062f..2f805854079 100644 --- a/services/notifications/pkg/config/config.go +++ b/services/notifications/pkg/config/config.go @@ -39,11 +39,11 @@ type Notifications struct { type SMTP struct { Host string `yaml:"smtp_host" env:"NOTIFICATIONS_SMTP_HOST" desc:"SMTP host to connect to."` Port int `yaml:"smtp_port" env:"NOTIFICATIONS_SMTP_PORT" desc:"Port of the SMTP host to connect to."` - Sender string `yaml:"smtp_sender" env:"NOTIFICATIONS_SMTP_SENDER" desc:"Sender address of emails that will be sent."` + Sender string `yaml:"smtp_sender" env:"NOTIFICATIONS_SMTP_SENDER" desc:"Sender address of emails that will be sent (e.g. 'ownCloud '."` Username string `yaml:"smtp_username" env:"NOTIFICATIONS_SMTP_USERNAME" desc:"Username for the SMTP host to connect to."` Password string `yaml:"smtp_password" env:"NOTIFICATIONS_SMTP_PASSWORD" desc:"Password for the SMTP host to connect to."` Insecure bool `yaml:"insecure" env:"NOTIFICATIONS_SMTP_INSECURE" desc:"Allow insecure connections to the SMTP server."` - Authentication string `yaml:"smtp_authentication" env:"NOTIFICATIONS_SMTP_AUTHENTICATION" desc:"Authentication method for the SMTP communication. Possible values are 'login', 'plain', 'crammd5', 'none'"` + Authentication string `yaml:"smtp_authentication" env:"NOTIFICATIONS_SMTP_AUTHENTICATION" desc:"Authentication method for the SMTP communication. Possible values are 'login', 'plain', 'crammd5', 'none' or 'auto'. If set to 'auto' or unset, the authentication method is automatically negotiated with the server."` Encryption string `yaml:"smtp_encryption" env:"NOTIFICATIONS_SMTP_ENCRYPTION" desc:"Encryption method for the SMTP communication. Possible values are 'starttls', 'ssl', 'ssltls', 'tls' and 'none'." deprecationVersion:"5.0.0" removalVersion:"6.0.0" deprecationInfo:"The NOTIFICATIONS_SMTP_ENCRYPTION values 'ssl' and 'tls' are deprecated and will be removed in the future." deprecationReplacement:"Use 'starttls' instead of 'tls' and 'ssltls' instead of 'ssl'."` } diff --git a/services/notifications/pkg/config/defaults/defaultconfig.go b/services/notifications/pkg/config/defaults/defaultconfig.go index ab8e2eca7d8..3a5ff261922 100644 --- a/services/notifications/pkg/config/defaults/defaultconfig.go +++ b/services/notifications/pkg/config/defaults/defaultconfig.go @@ -31,11 +31,7 @@ func DefaultConfig() *config.Config { WebUIURL: "https://localhost:9200", Notifications: config.Notifications{ SMTP: config.SMTP{ - Host: "", - Port: 1025, - Sender: "ownCloud ", - Authentication: "none", - Encryption: "none", + Encryption: "none", }, Events: config.Events{ Endpoint: "127.0.0.1:9233",