向各位高手求救,我现在在做的CB IDPOP3收邮件时遇到问题:无法接收到附件,部分代码如下:
for(int j=0;j<IdMessage2->MessageParts->Count-1;j++)
{
TIdAttachment *a=dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j]);
TIdText *t=dynamic_cast<TIdText*>(IdMessage2->MessageParts->Items[j]);
if(a) { int attachcount=0;
attachcount=attachcount + 1;
AnsiString fname=dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j])->FileName;
Memo1->Lines->Add(fname);
if(FileExists(fname))
DeleteFile(fname);
dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j])->SaveToFile("C:\1.txt");
Memo1->Lines->Add("文件"+ a->FileName);
}
现在的问题是执行if(a)条件不成立而不执行if内的语句,请指教这是什么原因?另外,如何判断新邮件,现在的情况是接收邮件时会把所有邮件都重新接收一次。急需大家的帮助,分数不是问题。期待。。
for(int j=0;j<IdMessage2->MessageParts->Count-1;j++)
{
TIdAttachment *a=dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j]);
TIdText *t=dynamic_cast<TIdText*>(IdMessage2->MessageParts->Items[j]);
if(a) { int attachcount=0;
attachcount=attachcount + 1;
AnsiString fname=dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j])->FileName;
Memo1->Lines->Add(fname);
if(FileExists(fname))
DeleteFile(fname);
dynamic_cast<TIdAttachment*>(IdMessage2->MessageParts->Items[j])->SaveToFile("C:\1.txt");
Memo1->Lines->Add("文件"+ a->FileName);
}
现在的问题是执行if(a)条件不成立而不执行if内的语句,请指教这是什么原因?另外,如何判断新邮件,现在的情况是接收邮件时会把所有邮件都重新接收一次。急需大家的帮助,分数不是问题。期待。。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货