我正在尝试使用delphi构建一个应用程序,它必须每隔30秒检查一次gmail收件箱,并且必须处理特殊用途的电子邮件。
使用Indy POP3组件构建该应用程序,部分代码如下。
If Not POP3.Connected Then
Begin
POP3.Host := 'pop.gmail.com';
POP3.Port := 995;
POP3.Username := 'email';
POP3.Password := 'password';
SSL.Host := POP3.Host;
SSL.Port := POP3.Port;
SSL.Destination := SSL.Host + ':' + IntToStr(SSL.Port);
POP3.IOHandler := SSL;
POP3.UseTLS := utUseImplicitTLS;
// try etc...
POP3.Connect;
End;
MsgCnt := POP3.CheckMessages;
For i := 1 To MsgCnt Do
Begin
POP3.Retrieve(i, Msg);
// process message.. etc..
End;
我有一个问题,我将在下面解释;
顺便说一句,我已经尝试过使用其他一些godaddy邮件帐户,它在工作了3到4次后也拒绝了我的连接,我想用gmail(谷歌应用程序)来解决这个问题。
谢谢你的帮助。
答案 0 :(得分:1)
您没有显示所有代码,但我假设您要将POP3控件连接到服务器...最终服务器会将您停用并断开连接。
connect
checkmessages
save messages
disconnect
只要正确断开连接,您应该可以通过POP3每30-60秒连接一次。但是,如果你想保持连接并立即更新新邮件,那就是IMAP功能,而不是POP3。
答案 1 :(得分:0)
对于在连接到POP3服务器时未接收新电子邮件,登录时邮箱会被锁定,并在断开连接之前保持锁定状态。您只能查看和操作登录时出现的消息。这是POP3设计的核心。它不适用于通用文件夹/消息管理。这就是IMAP专门针对的(正如您已经发现的那样)。 POP3仅用于下载和删除邮件,因此只需下载/删除邮件,断开连接,然后再等待一段时间。