记录如下的关键地方,存档
xe7自带的indy 组件是10.6版本,
1. 接收邮件时, 如果邮箱容量超过2GB的话,idpop3的检查检索邮件数量的函数返回值就会出错。
今天2019.12.3在indy 官网看到 indy 10已经更新了组件的 相关类型从integer 改为 int64.
var
i:integer;
begin
i:=0;
self.IdPOP31.Host:='pop.xxxxx';
self.IdPOP31.Username:='xxx@xxxxx.com';
self.IdPOP31.Password:='xxxxx';
try
self.IdPOP31.Connect;
// self.IdPOP31.Login;
i:=self.IdPOP31.CheckMessages; //如果邮箱使用容量超过2gb, 会出错,会显示一个很大的整数。
//另外读取的邮件会从老-->新 的时间开始
for i := 1 to 5 do
begin
self.IdMessage1.Clear;
self.IdPOP31.RetrieveHeader(i,self.IdMessage1);
self.Memo1.Lines.Add(self.IdMessage1.From.Address) ;
self.Memo1.Lines.Add(datetostr(self.IdMessage1.Date));
self.Memo1.Lines.Add(self.IdMessage1.Subject);
self.IdPOP31.Retrieve(i, self.IdMessage1);
self.Memo1.Lines.Add(self.IdMessage1.Body.Text);
end;
except