diff --git a/lib/imap.c b/lib/imap.c index ba6c61078..c39664d86 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -354,8 +354,12 @@ static CURLcode imap_state_starttls_resp(struct connectdata *conn, (void)instate; /* no use for this yet */ if(imapcode != 'O') { - failf(data, "STARTTLS denied. %c", imapcode); - result = CURLE_USE_SSL_FAILED; + if(data->set.use_ssl != CURLUSESSL_TRY) { + failf(data, "STARTTLS denied. %c", imapcode); + result = CURLE_USE_SSL_FAILED; + } + else + result = imap_state_login(conn); } else { if(data->state.used_interface == Curl_if_multi) { diff --git a/lib/pop3.c b/lib/pop3.c index 283025120..b7781109b 100644 --- a/lib/pop3.c +++ b/lib/pop3.c @@ -298,9 +298,13 @@ static CURLcode pop3_state_starttls_resp(struct connectdata *conn, (void)instate; /* no use for this yet */ if(pop3code != 'O') { - failf(data, "STARTTLS denied. %c", pop3code); - result = CURLE_USE_SSL_FAILED; - state(conn, POP3_STOP); + if(data->set.use_ssl != CURLUSESSL_TRY) { + failf(data, "STARTTLS denied. %c", pop3code); + result = CURLE_USE_SSL_FAILED; + state(conn, POP3_STOP); + } + else + result = pop3_state_user(conn); } else { /* Curl_ssl_connect is BLOCKING */