组件 :idpop3,idmessagefor j:=0 to IdMessage1.MessageParts.Count-1 do //查看邮件所有内容,保证能够下载所有附件
try
if (IdMessage1.MessageParts.Items[j] is TIdAttachment) then //匹配邮件条目是否是附件
begin
TIdAttachment(IdMessage1.MessageParts.Items[j]).SaveToFile('c:/'+
TIdAttachment(IdMessage1.MessageParts.Items[j]).FileName); //以原有文件名保存附件在指定目录
end;
except
continue;
end;这是论坛里的一段代码。我按此测试时,编译没有问题,但就是读不到附件。随后我用showmessage读IdMessage1.MessageParts.Count的信息,发现为0,attachment也是0,是什么原因?邮箱明明有附件的,文件名为英文。
请大家帮忙看看。
谢谢。
分本来就不多,请大家见谅。
try
if (IdMessage1.MessageParts.Items[j] is TIdAttachment) then //匹配邮件条目是否是附件
begin
TIdAttachment(IdMessage1.MessageParts.Items[j]).SaveToFile('c:/'+
TIdAttachment(IdMessage1.MessageParts.Items[j]).FileName); //以原有文件名保存附件在指定目录
end;
except
continue;
end;这是论坛里的一段代码。我按此测试时,编译没有问题,但就是读不到附件。随后我用showmessage读IdMessage1.MessageParts.Count的信息,发现为0,attachment也是0,是什么原因?邮箱明明有附件的,文件名为英文。
请大家帮忙看看。
谢谢。
分本来就不多,请大家见谅。
解决方案 »
- 字符串查找问题
- 求助:关开COM
- 想模仿一个WINDOWS任务栏的东西,不知道怎么实现
- 关于动态生成控件的问题
- 求助!连接数据库问题?
- Delphi中如何实现万能查询?,请大家讨论.
- 连接问题
- 各位同仁,不知道大家对老版本得<射雕英雄传>有没有印象??
- 小妹?^_^?捉虫:窗体的一个属性?
- 谁能介绍几本API的书?还有就是DELPHI能不能使用所有的API?是不是很菜呀:)
- 名位朋友看看这代码出现Field Form1.memo1 does not have a corresponding component,removethe.
- delphi中错误 incompatible types: 'string' and 'TEdit'
附件有多大?正常的邮件内容能接受到吗?
之前写过接收邮件的,for循环用的是idpop1.checkmessages获取邮件数量。
idpop1.retrieve(i+1,idmessage1);
if imessage1.messageparts.item[1] is tidattachment then
tmp:=idmessage1.Body.Text;
memo1.Lines.Add(tmp);
if Msg.MessageParts.Items[] is TIdText then
begin
Memo1.Clear;
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[]).Body);
end
可以读取到正文。
是不是跟delphi版本什么的有关。我的2010
begin
if (Msg.MessageParts.Items[intIndex] is TIdAttachmentFile) then
begin //general attachment
pnlAttachments.visible := true;
li := lvMessageParts.Items.Add;
li.ImageIndex := 8;
li.Caption := TIdAttachmentFile(Msg.MessageParts.Items[intIndex]).Filename;
li.SubItems.Add(TIdAttachmentFile(Msg.MessageParts.Items[intIndex]).ContentType);
end
else
begin //body text
if Msg.MessageParts.Items[intIndex] is TIdText then
begin
Memo1.Lines.Clear;
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
end
end;
end;
if idmessage1.MessageParts.Items[] is tidattachmentfile then
begin
tidattachmentfile(idmessage1.MessageParts.Items[]).savetofile('c:\'
+tidattachmentfile(idmessage1.MessageParts.Items[]).filename); end;