7

我正在尝试使用 imap_open() 连接并获取主机电子邮件地址的消息,但它会抛出错误。

$server = '{mail.booksnearby.in:143/imap/ssl/novalidate-cert}INBOX';
$imap_connection = imap_open($server, $login, $password);
$mailboxinfo = imap_mailboxmsginfo($imap_connection);
$messageCount = $mailboxinfo->Nmsgs;

上面抛出了这个错误:Array ( [0] => Retrying PLAIN authentication after [AUTHENTICATIONFAILED] Authentication failed.

如果我将 $server 更改为

$server = '{mail.booksnearby.in:143}INBOX';   

然后它抛出以下错误

Certificate failure for mail.booksnearby.in: self signed certificate:

如果 $server 是

$server = '{mail.booksnearby.in:143/imap/ssl/novalidate-cert}INBOX'; 

它抛出

Array ( [0] => TLS/SSL failure for mail.booksnearby.in: SSL negotiation failed )

我可以使用电子邮件客户端使用相同的用户名密码连接到电子邮件帐户。

我似乎也无法远程登录。它正在运行 apache 、 cpanel 和 dovecat。在我的主机上启用了支持 Ssl 的 Imap..

4

2 回答 2

13

您确定端口号是 143(不是 993)吗?正如我所见,因为您正在使用带有自签名证书的安全连接。尝试这样做:

$server = '{mail.booksnearby.in:993/imap/ssl/novalidate-cert}INBOX';
于 2012-10-17T14:44:47.923 回答
1

有点晚了,但仍然相关:)

通常,使用端口时143不涉及 SSL 加密。所以你不需要ssl在你的连接字符串中设置。结果,它应该如下所示:

$server = '{mail.booksnearby.in:143/imap}INBOX'; 

希望这会有所帮助。

于 2019-05-03T20:58:11.680 回答