[GSoC PATCH v9 0/2] send-email: improve error capture and status code handling
- From
Zheng Yuting <05zyt30@gmail.com>
- Date
- Mar 26, 2025, 07:52 UTC
- Message-ID
- <20250326075246.2612627-1-05ZYT30@gmail.com>
- In-Reply-To
- <20250324145332.571813-1-05ZYT30@gmail.com>
This patch series improves SMTP authentication error handling.
Auth relied solely on return values without capturing exceptions, misjudging non-credential errors as authentication failures.
Patch v9 1/2 wraps the auth process in an eval {} block to catch all exceptions, adds var error for future handling, and var result to return auth state.
Patch v9 2/2 introduces finer-grained SMTP error handling by extracting status codes per RFC 5321. For 4yz (transient) errors, return 1 and allow retries; for 5yz (permanent) errors, return 0. Unrecognized or uncaught status codes are treated as transient errors (return 1). If no error is present and no result is defined, return 1 as a transient error; otherwise, return the authentication result.
Zheng Yuting (2):
send-email: capture errors in an eval {} block
send-email: finer-grained SMTP error handlinggit-send-email.perl | 69 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 15 deletions(-)
-- 2.49.0