smtp: Changed the default command to HELP when no options are specified

Otherwise a NOOP operation would be performed which a) only returns a
single line response and not a multiline response where -I needs to be
used, and b) provides an inconsistent user experience compared to that
of the POP3 and IMAP protocols.
This commit is contained in:
Steve Holme 2013-11-17 09:45:08 +00:00
parent b27dc009cf
commit 3c8c9b2779
3 changed files with 10 additions and 11 deletions

View File

@ -1801,7 +1801,7 @@ Specifies a custom POP3 command to use instead of LIST or RETR. (Added in
Specifies a custom IMAP command to use insead of LIST. (Added in 7.30.0)
(SMTP)
Specifies a custom SMTP command to use instead of VRFY or NOOP. (Added in 7.34.0)
Specifies a custom SMTP command to use instead of HELP or VRFY. (Added in 7.34.0)
If this option is used several times, the last one will be used.
.IP "--xattr"

View File

@ -2084,11 +2084,11 @@ Instead of LIST and NLST when performing FTP directory listings.
.B IMAP
Instead of LIST when issuing IMAP based commands. (Added in 7.30.0)
Instead of LIST when issuing IMAP based requests. (Added in 7.30.0)
.B POP3
Instead of LIST and RETR when issuing POP3 based commands. (Added in 7.26.0)
Instead of LIST and RETR when issuing POP3 based requests. (Added in 7.26.0)
For example:
@ -2099,15 +2099,14 @@ DELE and NOOP for example.
.B SMTP
When you tell libcurl to use a custom request it will behave as a NOOP or VRFY
request depending on what other options are set. (Added in 7.34.0)
Instead of a HELP or VRFY when issuing SMTP based requests. (Added in 7.34.0)
For example:
If the \fICURLOPT_NOBODY\fP option is specified then the request can be used to
specify the RSET command. Otherwise a multiline listing is returned which can
be used to specify a HELP request or, if used in conjuection with the
\fICURLOPT_MAIL_RCPT\fP option, a EXPN request.
Normally a multiline response is returned which can be used, in conjuection with
\fICURLOPT_MAIL_RCPT\fP, to specify an EXPN request. If the \fICURLOPT_NOBODY\fP
option is specified then the request can be used to issue NOOP and RSET
commands.
.IP CURLOPT_FILETIME
Pass a long. If it is 1, libcurl will attempt to get the modification date of
the remote document in this operation. This requires that the remote server

View File

@ -571,8 +571,8 @@ static CURLcode smtp_perform_command(struct connectdata *conn)
/* Send the VRFY command */
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "VRFY %s", smtp->rcpt->data);
else
/* Send the NOOP command */
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", "NOOP");
/* Send the HELP command */
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", "HELP");
if(!result)
state(conn, SMTP_COMMAND);