我做一个邮件收发程序,收邮件时会报Uneven size in DecodeToStream ,不是所有的邮件都报这样的错误,我用不同的邮箱测试有的可以正常接收。部分代码如下:
if IdMessage1.Date>StrToDateTime(sE_Date) then
begin
IdMessage1.Clear;
IdPOP31.Retrieve(intIndex,IdMessage1); //此处代码执行报错
suiStatusBar1.Panels[0].Text:='正在接收邮件:“'+POP+'”中第'+inttostr(k)+'封';
itm := ListView2.Items.Add;
itm.Caption:=IntToStr(k);
itm.ImageIndex:=0;
itm.SubItems.Add(GetTitle(IdMessage1.Subject));
itm.SubItems.Add(GetTitle(IdMessage1.From.Text));
itm.SubItems.Add(DateTimeToStr(IdMessage1.Date));
itm.SubItems.Add(IntToStr(IdPOP31.RetrieveMsgSize(intIndex)));
itm.SubItems.Add(IdMessage1.MsgId);
inc(sID);
mixfilename:='';请大家帮我看看该怎么解决。
if IdMessage1.Date>StrToDateTime(sE_Date) then
begin
IdMessage1.Clear;
IdPOP31.Retrieve(intIndex,IdMessage1); //此处代码执行报错
suiStatusBar1.Panels[0].Text:='正在接收邮件:“'+POP+'”中第'+inttostr(k)+'封';
itm := ListView2.Items.Add;
itm.Caption:=IntToStr(k);
itm.ImageIndex:=0;
itm.SubItems.Add(GetTitle(IdMessage1.Subject));
itm.SubItems.Add(GetTitle(IdMessage1.From.Text));
itm.SubItems.Add(DateTimeToStr(IdMessage1.Date));
itm.SubItems.Add(IntToStr(IdPOP31.RetrieveMsgSize(intIndex)));
itm.SubItems.Add(IdMessage1.MsgId);
inc(sID);
mixfilename:='';请大家帮我看看该怎么解决。
解决方案 »
- 私活:IIS漏洞扫描 待遇300¥¥
- 难!是否可以检测到其他程序产生的异常,并且强行将他结束?
- 变量定义和dictionary对象的问题
- Delphi包技术讨论 DLL(package),Interface,Application
- 急,求救,关于DBCHART用法,如何除去空值,不要显示成0,马上给分
- 如何在TWebBrowser中给HTML页面中Java Applet设置属性?
- TAdvStringGrid怎么显示图片
- 哪位仁兄有ghost企业版或类似软件
- 问一个比较菜的问题:delphi这样实现团队合作开发呢?
- Delphi中更新一个字段为空,怎样将这个空值传到TQuery控件的SQL语句的相应参数中
- 招DELPHI 程序員
- 求助:我有一个 OpenDialog1 和一个 RichEdit1, 怎么把文本文件的内容读到RichEdit1啊?谢谢!
另:不能接收的是163的邮箱,我把163邮件转发到sina的邮箱就能够接收。郁闷中
IdPOP31.Retrieve.RetrieveHeader(intIndex,IdMessage1); 我不是高手,我是这么做的。
执行完全正常,我没有帖上。
就是在取邮件正文和附件出错的,部分邮件
IdPOP31.Retrieve(intIndex,IdMessage1); //此处代码执行部分邮件会报错
我现在就差解决这个问题了。要不然周末都没得好过了,那位救救我
还有,你说163是指 163.com 还是 163.net
我的代码和你的差不多,163.com 没问题啊
begin
try
IdPOP31.RetrieveHeader(intIndex,IdMessage1);
Except
//.....
end
//....
end;
这个intIndex 不应该有错吧,我测试用的是mail.163.com的邮箱。里面有几封邮件收取
会出错Uneven size in DecodeToStream,原因不知道。
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
IdPop31.Host := 'pop3.163.com';
IdPop31.Username := '*';
Idpop31.Password := '*';
IdPop31.Connect(); for i := 1 to Idpop31.CheckMessages do
begin
IdMessage1.Clear;
try
IdPOP31.RetrieveHeader(i,IdMessage1);
showmessage(IdMessage1.Subject+'@@@@@@@@@@'+IdMessage1.MsgId);
Except
IdPOP31.DisconnectSocket ;
IdPOP31.Disconnect ;
IDPOP31.Connect();
Continue;
end;
try
IdPop31.Retrieve(i,IdMessage1);//在此处还是有部分邮件报错Uneven size in DecodeToStream
showmessage(IdMessage1.Subject+'@@@@@@@@@@'+IdMessage1.MsgId);
except
exit;
end;
end;
showmessage('邮件收取结束,哈哈')
end;
真不知道咋办了,可是那个属性设置不对?我可是啥都没有动,全部是默认设置。去邮件头正常