关于接收电子邮件的苦恼问题,这个是在这里找到的例子,但是却不能用,请高手指点。
下面是源代码,经过我的测试,问题出在 NMPOP31->GetMailMessage(i);这个位置,也就是说我无法从得到邮件的信息,这是怎么回事,我也尝试在NMPOP31RetrieveEnd(TObject *Sender)进行判断,发现根本不执行,请问是怎么回事?明明已经连接上了,因为已经得到了邮件的数目,可是为什么不能得到邮件的内容呢?实在不明白。
AnsiString str;
Label1->Caption="正在连接服务器...";
if(NMPOP31->Connected)NMPOP31->Disconnect();
NMPOP31->AttachFilePath = ".";
NMPOP31->DeleteOnRead = false;
NMPOP31->ReportLevel = Status_Basic;
NMPOP31->TimeOut = 20000;
NMPOP31->Host ="Pop.163.com";
NMPOP31->Port=110;
NMPOP31->UserID ="abcd";
NMPOP31->Password ="123";
NMPOP31->Connect();
Label1->Caption="连接服务器成功,读取中,请稍后...";
if(NMPOP31->MailCount)
{
ListView1->Clear();
str=NMPOP31->MailCount;
for(int i=1;i<=NMPOP31->MailCount;i++)
{
nCount = i;
//??????????????????????
NMPOP31->GetMailMessage(i);
//////////////////////////////////////
TListItem *listitem;
listitem=ListView1->Items->Add();
listitem->Caption=NMPOP31->MailMessage->From;
listitem->SubItems->Add(NMPOP31->MailMessage->Subject);
listitem->SubItems->Add(NMPOP31->MailMessage->Body->Text);
}
Label1->Caption="读取完成,相关信息"+str+"条";
NMPOP31->Disconnect();
//Memo1->Clear();
}
else
{
Label1->Caption="暂时没有邮件";
return;
}