Commit 5c5b7c71 authored by Jiri Hruska's avatar Jiri Hruska Committed by Steve Holme
Browse files

imap: Added the ability to FETCH a specific UID and SECTION

Updated the FETCH command to send the UID and SECTION parsed from the
URL. By default the BODY specifier doesn't include a section, BODY[] is
now sent whereas BODY[TEXT] was previously sent. In my opinion
retrieving just the message text is rarely useful when dealing with
emails, as the headers are required for example, so that functionality
is not retained. In can however be simulated by adding SECTION=TEXT to
the URL.

Also updated test801 and test1321 due to the BODY change.
parent 7f6c7331
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -1109,11 +1109,12 @@ static CURLcode imap_select(struct connectdata *conn)
static CURLcode imap_fetch(struct connectdata *conn)
{
  CURLcode result = CURLE_OK;
  struct IMAP *imap = conn->data->state.proto.imap;

  /* TODO: make this select the correct mail
   * Use "1 body[text]" to get the full mail body of mail 1
   */
  result = imap_sendf(conn, "FETCH 1 BODY[TEXT]");
  /* Send the FETCH command */
  result = imap_sendf(conn, "FETCH %s BODY[%s]",
                      imap->uid ? imap->uid : "1",
                      imap->section ? imap->section : "");
  if(result)
    return result;

+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ imap://%HOSTIP:%IMAPPORT/1321 -u user:secret -p -x %HOSTIP:%PROXYPORT
A001 CAPABILITY
A002 LOGIN user secret
A003 SELECT 1321
A004 FETCH 1 BODY[TEXT]
A004 FETCH 1 BODY[]
A005 LOGOUT
</protocol>
<proxy>
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ imap://%HOSTIP:%IMAPPORT/801 -u user:secret
A001 CAPABILITY
A002 LOGIN user secret
A003 SELECT 801
A004 FETCH 1 BODY[TEXT]
A004 FETCH 1 BODY[]
A005 LOGOUT
</protocol>
</verify>