无法使用imap_open()进行连接

时间:2012-07-23 10:11:16

标签: php

我正在尝试使用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 ..

2 个答案:

答案 0 :(得分:8)

您确定端口号是143(而不是993)吗?因为我看到你使用自签名证书的安全连接。 试着这样做:

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

答案 1 :(得分:1)

有点晚了,但仍然有意义:)

通常,使用端口143时不涉及SSL加密。 因此,您无需在连接字符串中设置ssl。 结果,它应该看起来像:

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

希望这会有所帮助。