diff --git a/CHANGELOG.md b/CHANGELOG.md index 85aa1d1..e7c264b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ Notable changes to Mailpit will be documented in this file. +## [v1.27.7] + +### Fix +- Move HELO/EHLO hostname setting to the correct position in SMTP client creation ([#558](https://github.com/axllent/mailpit/issues/558)) + + ## [v1.27.6] ### Feature diff --git a/internal/smtpd/forward.go b/internal/smtpd/forward.go index 98fe9cf..e439e3c 100644 --- a/internal/smtpd/forward.go +++ b/internal/smtpd/forward.go @@ -51,6 +51,13 @@ func createForwardingSMTPClient(config config.SMTPForwardConfigStruct, addr stri return nil, fmt.Errorf("error connecting to %s: %v", addr, err) } + // Set the hostname for HELO/EHLO + if hostname, err := os.Hostname(); err == nil { + if err := client.Hello(hostname); err != nil { + return nil, fmt.Errorf("error saying HELO/EHLO to %s: %v", addr, err) + } + } + if config.STARTTLS { tlsConf := &tls.Config{ServerName: config.Host} // #nosec tlsConf.InsecureSkipVerify = config.AllowInsecure @@ -61,13 +68,6 @@ func createForwardingSMTPClient(config config.SMTPForwardConfigStruct, addr stri } } - // Set the hostname for HELO/EHLO - if hostname, err := os.Hostname(); err == nil { - if err := client.Hello(hostname); err != nil { - return nil, fmt.Errorf("error saying HELO/EHLO to %s: %v", addr, err) - } - } - // Note: The caller is responsible for closing the client return client, nil } diff --git a/internal/smtpd/relay.go b/internal/smtpd/relay.go index 5e94b0a..c76e6a7 100644 --- a/internal/smtpd/relay.go +++ b/internal/smtpd/relay.go @@ -85,6 +85,13 @@ func createRelaySMTPClient(config config.SMTPRelayConfigStruct, addr string) (*s return nil, fmt.Errorf("error connecting to %s: %v", addr, err) } + // Set the hostname for HELO/EHLO + if hostname, err := os.Hostname(); err == nil { + if err := client.Hello(hostname); err != nil { + return nil, fmt.Errorf("error saying HELO/EHLO to %s: %v", addr, err) + } + } + if config.STARTTLS { tlsConf := &tls.Config{ServerName: config.Host} // #nosec tlsConf.InsecureSkipVerify = config.AllowInsecure @@ -95,13 +102,6 @@ func createRelaySMTPClient(config config.SMTPRelayConfigStruct, addr string) (*s } } - // Set the hostname for HELO/EHLO - if hostname, err := os.Hostname(); err == nil { - if err := client.Hello(hostname); err != nil { - return nil, fmt.Errorf("error saying HELO/EHLO to %s: %v", addr, err) - } - } - // Note: The caller is responsible for closing the client return client, nil }