From 4754c55cd7c0f16f2d7bef76d55f09679933571c Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Fri, 7 Feb 2020 19:57:15 +0000 Subject: smtp: Detect server support for the UTF-8 extension as defined in RFC-6531 --- lib/smtp.c | 5 +++++ lib/smtp.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/lib/smtp.c b/lib/smtp.c index 3c3dfcbd9..6a87849bb 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -29,6 +29,7 @@ * RFC5321 SMTP protocol * RFC5890 Internationalized Domain Names for Applications (IDNA) * RFC6531 SMTP Extension for Internationalized Email + * RFC6532 Internationalized Email Headers * RFC6749 OAuth 2.0 Authorization Framework * RFC8314 Use of TLS for Email Submission and Access * Draft SMTP URL Interface @@ -802,6 +803,10 @@ static CURLcode smtp_state_ehlo_resp(struct connectdata *conn, int smtpcode, else if(len >= 4 && !memcmp(line, "SIZE", 4)) smtpc->size_supported = TRUE; + /* Does the server support the UTF-8 capability? */ + else if(len >= 8 && !memcmp(line, "SMTPUTF8", 8)) + smtpc->utf8_supported = TRUE; + /* Does the server support authentication? */ else if(len >= 5 && !memcmp(line, "AUTH ", 5)) { smtpc->auth_supported = TRUE; diff --git a/lib/smtp.h b/lib/smtp.h index 0865d91e7..164a175d7 100644 --- a/lib/smtp.h +++ b/lib/smtp.h @@ -74,6 +74,8 @@ struct smtp_conn { bool tls_supported; /* StartTLS capability supported by server */ bool size_supported; /* If server supports SIZE extension according to RFC 1870 */ + bool utf8_supported; /* If server supports SMTPUTF8 extension according + to RFC 6531 */ bool auth_supported; /* AUTH capability supported by server */ }; -- cgit v1.2.3