问题描述
我经常使用 TIdPOP3
,而且效果很好,除了 GMail 帐户。
不知何故,它永远不起作用。我尝试了不同的组合和端口,使用和不使用 SSL,它总是返回不同的错误。
我最近的尝试是在 Gmail 上创建一个“特定于应用程序”的密码,并尝试在端口 995 上使用此密码进行连接。这次它返回“连接正常关闭”。
Resolving hostname pop.gmail.com.
Connecting to 172.217.192.108.
Connected.
disconnected.
Connection Closed Gracefully.
我也试过这个:
popb.Host := 'pop.gmail.com';
popb.username := 'myacount@gmail.com';
popb.password := 'mypassword';
popb.Port := 995;
popb.IOHandler := sslpop;
popb.UseTLS := utUseImplicitTLS;
with sslpop do
begin
Destination := 'pop.gmail.com:995';
Host := 'pop.gmail.com';
Port := 995;
DefaultPort := 0;
end;
使用 SSL 连接时出错。错误:00000006:lib(0):func(0):EVP lib
我尝试获取的这个特定帐户具有两步验证;这是否使它无法与 Indy 一起使用?
解决方法
我可以通过设置 Ssloptions.Method := sslvSSLv23 来解决这个问题。
这是完整的工作代码:
pop.Host := 'pop.gmail.com';
pop.username := 'myemail@gmail.com';
pop.password := 'mypassword';
pop.Port := 995;
pop.IOHandler := sslpop;
pop.UseTLS := utUseImplicitTLS;
with sslpop do
begin
Destination := 'pop.gmail.com:995';
Ssloptions.Method := sslvSSLv23;
Host := 'pop.gmail.com';
Port := 995;
DefaultPort := 0;
end;