Refine and clarify SSL and debug logging comments

Revised the comments for `WithSSLPort`, `WithDebugLog`, `WithLogger`, and `WithHELO` options to improve readability and provide clearer explanations. Added caution about potential data protection issues when using debug logging and specified defaults where applicable.
This commit is contained in:
Winni Neessen 2024-10-04 21:38:39 +02:00
parent a34f400a05
commit 3e5c93a418
Signed by: wneessen
GPG key ID: 385AC9889632126E

View file

@ -294,16 +294,16 @@ func WithSSL() Option {
} }
} }
// WithSSLPort enables implicit SSL/TLS with an optional fallback for the Client. // WithSSLPort enables implicit SSL/TLS with an optional fallback for the Client. The correct port is
// The correct port is automatically set. // automatically set.
// //
// If this option is used with NewClient, the default port 25 will be overriden // If this option is used with NewClient, the default port 25 will be overriden with port 465. If fallback
// with port 465. If fallback is set to true and the SSL/TLS connection fails, // is set to true and the SSL/TLS connection fails, the Client will attempt to connect on port 25 using
// the Client will attempt to connect on port 25 using plaintext. // using an unencrypted connection.
// //
// Note: If a different port has already been set otherwise using WithPort, the // Note: If a different port has already been set otherwise using WithPort, the selected port has higher
// selected port has higher precedence and is used to establish the SSL/TLS // precedence and is used to establish the SSL/TLS connection. In this case the authmatic fallback
// connection. In this case the authmatic fallback mechanism is skipped at all. // mechanism is skipped at all.
func WithSSLPort(fallback bool) Option { func WithSSLPort(fallback bool) Option {
return func(c *Client) error { return func(c *Client) error {
c.SetSSLPort(true, fallback) c.SetSSLPort(true, fallback)
@ -311,8 +311,12 @@ func WithSSLPort(fallback bool) Option {
} }
} }
// WithDebugLog tells the client to log incoming and outgoing messages of the SMTP client // WithDebugLog neables debug logging for the Client. The debug logger will log incoming and outgoing
// to StdErr // communication between the Client and the server to os.StdErr.
//
// Note: The SMTP communication might include unencrypted authentication data, depending if you are
// using SMTP authentication and the type of authentication mechanism. This could pose a data
// protection problem. Use debug logging with care.
func WithDebugLog() Option { func WithDebugLog() Option {
return func(c *Client) error { return func(c *Client) error {
c.useDebugLog = true c.useDebugLog = true
@ -320,7 +324,10 @@ func WithDebugLog() Option {
} }
} }
// WithLogger overrides the default log.Logger that is used for debug logging // WithLogger defines a custom logger for the Client. The logger has to satisfy the log.Logger
// interface and is only used when debug logging is enabled on the Client.
//
// By default we use log.Stdlog.
func WithLogger(logger log.Logger) Option { func WithLogger(logger log.Logger) Option {
return func(c *Client) error { return func(c *Client) error {
c.logger = logger c.logger = logger
@ -328,7 +335,9 @@ func WithLogger(logger log.Logger) Option {
} }
} }
// WithHELO tells the client to use the provided string as HELO/EHLO greeting host // WithHELO sets the HELO/EHLO string used for the the Client.
//
// By default we use os.Hostname to identify the HELO/EHLO string.
func WithHELO(helo string) Option { func WithHELO(helo string) Option {
return func(c *Client) error { return func(c *Client) error {
if helo == "" { if helo == "" {