Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 仅从Gmail下载部分邮件头';已发送项目';使用imap_Delphi_Gmail_Imap - Fatal编程技术网

Delphi 仅从Gmail下载部分邮件头';已发送项目';使用imap

Delphi 仅从Gmail下载部分邮件头';已发送项目';使用imap,delphi,gmail,imap,Delphi,Gmail,Imap,关于我关于访问Gmail中的“已发送邮件”文件夹的问题,接受答案中的代码使用UIDRetrieveAllEnvelopes下载文件夹中的所有邮件标题。下载完所有标题后,我会对其进行过滤 有没有办法只下载当天发送的邮件(即下载前过滤)?没有办法只检索特定文件夹中某一天的邮件 IMAP方法是缓存消息/信封,只检索最近的/新的消息。 查看TIdIMAP4.StatusMailbox和TIdIMAP4.RetrieveFlags以检查客户端新收到的消息,并仅下载这些消息/eLopes 可能的标志是

关于我关于访问Gmail中的“已发送邮件”文件夹的问题,接受答案中的代码使用UIDRetrieveAllEnvelopes下载文件夹中的所有邮件标题。下载完所有标题后,我会对其进行过滤


有没有办法只下载当天发送的邮件(即下载前过滤)?

没有办法只检索特定文件夹中某一天的邮件

IMAP方法是缓存消息/信封,只检索最近的/新的消息。 查看
TIdIMAP4.StatusMailbox
TIdIMAP4.RetrieveFlags
以检查客户端新收到的消息,并仅下载这些消息/eLopes

可能的标志是

  TIdMessageFlags =
  ( mfAnswered, //Message has been answered.
    mfFlagged, //Message is "flagged" for urgent/special attention.
    mfDeleted, //Message is "deleted" for removal by later EXPUNGE.
    mfDraft, //Message has not completed composition (marked as a draft).
    mfSeen, //Message has been read.
    mfRecent ); //Message is "recently" arrived in this mailbox.

我似乎找到了办法

 today:= datetostr (date);
 with imap do
  begin
   Username:= 'whatever@gmail.com';
   Password:= ....;
   Connect;
   if SelectMailBox('[Gmail]/sent items') then
    begin
     i:= MailBox.TotalMsgs;
     retrieve (i, email);
     while datetostr (email.date) = today do
      begin
       lb.items.add (email.subject + ' ' + datetostr (email.date));
       dec (i);
       retrieve (i, email)
      end 
    end;
   Disconnect;
  end; 

我更喜欢用一个。我将使用
sksentstain
键将今天的日期传递到
TIdIMAP4SearchRec.date
字段,而不是
skBody
搜索带有
Text
字段的键。@TLama+1-但这并不限于特殊的folder@TLama:搜索是正确的答案。搜索仅限于当前选定的邮箱。因此,只需选择“已发送邮件”邮箱,然后执行搜索。一些IMAP后端确实通过IMAP
search UID
命令直接支持此操作。