如何将邮件设置为未读??使用来自indy10的delphi 7和imap

如何将邮件设置为未读??使用来自indy10的delphi 7和imap,delphi,imap,delphi-7,indy,indy10,Delphi,Imap,Delphi 7,Indy,Indy10,如何将电子邮件设置为未读 在这里,我阅读了gmail收件箱中的电子邮件 当我阅读gmail时,它会像读一样标记,所以我想再次像未读一样标记 TheImap.GetUID(i+1, TheUID); TheImap.UIDRetrieveFlags(TheUID, TheFlags); TheImap.UIDRetrieveHeader(TheUID, TheMsg); TheImap.UIDRetrieveText(TheUID, lacadena); if mfSeen in Th

如何将电子邮件设置为未读

在这里,我阅读了gmail收件箱中的电子邮件

当我阅读gmail时,它会像读一样标记,所以我想再次像未读一样标记

 TheImap.GetUID(i+1, TheUID);
 TheImap.UIDRetrieveFlags(TheUID, TheFlags);
 TheImap.UIDRetrieveHeader(TheUID, TheMsg);
 TheImap.UIDRetrieveText(TheUID, lacadena);

 if mfSeen in TheFlags then begin
   TheImap.StoreFlags(TheUID, sdReplace, TheMsg.Flags - [mfSeen] );

您正在尝试传递一个UID字符串,其中需要MsgNum整数。您需要使用
UIDStoreFlags()
而不是
StoreFlags()


它给我的错误是数组和字符串类型不兼容,如果mfSeen在offlags中,那么就开始map.StoreFlags(TheUID,sdReplace,TheMsg.Flags-[mfSeen]);这些是var补偿:TIdMessageFlagsSet;uid:string;n计数:整数;TheMsg:TID消息;MailBoxName:string;拉卡迪纳:弦;i:整数;布雷特:布尔;OpenSSLHandler:TIdSSLIOHandlerSocketOpenSSL;同样,您必须使用
UIDStoreFlags()
,而不是
StoreFlags()
。注意方法名称上的
UID
前缀。哦,我的错误,现在测试
TheImap.UIDStoreFlags(TheUID, sdReplace, TheFlags - [mfSeen]);