imap_open:无法打开流到我的邮件服务器

时间:2014-04-01 13:28:07

标签: php email imap

  

注意:未知:连接无法通过mail.domain.com,143:连接   在第0行的未知中超时(errflg = 2)

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

端口143已打开,我不在防火墙后面,我的服务器使用自签名证书。

我真的不明白为什么我无法连接到我的邮件服务器

我到处搜索但我找不到答案..

7 个答案:

答案 0 :(得分:8)

感谢您的回答。 我的错误不是来自连接,而是一个循环,当我收到太多电子邮件时,它崩溃了服务器:

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

$emails = imap_search($stream, 'UNSEEN');

rsort($emails);
foreach ($emails as $email_id) {
  imap_fetch_overview($stream, $email_id, 0);
} //that was the mistake when email number is too big!

答案 1 :(得分:1)

我自己也遇到了同样的问题。如您所见。

enter image description here

所以,我如何解决这个问题:

转到您的Google Account,您必须更改安全设置。

转到安全性标签。

向下滚动,您会发现登录Google

打开OFF这两个设置:

  1. 使用手机登录
  2. 两步验证

然后降低安全应用访问权限 ON

仅此而已,它对我有用,希望对您有用。

答案 2 :(得分:0)

我的猜测是你落后于ssl(默认端口585)

尝试

imap_open("{mail.domain.com:585/imap/ssl/novalidate-cert}INBOX", 'login', 'password') or die('Cannot connect: ' . print_r(imap_errors(), true))

别忘了打开那个端口

答案 3 :(得分:0)

我写了一个图书馆 不知道它对你的主人有用。
但你肯定可以尝试一下。 http://vivoauthimap.vivsoftware.in/

答案 4 :(得分:0)

就我而言,这是成功的秘诀:

imap_open("{mail.domain.com:110/pop3/notls}INBOX", 'login', 'password')

答案 5 :(得分:0)

就我而言,imap扩展名在编译时没有使用--with-imap-ssl选项。您需要将其传递给configure或使用Docker:

docker-php-ext-configure imap --with-imap-ssl
docker-php-ext-install imap

您可以使用以下命令验证是否有SSL支持:

php -i | grep imap -A 5

如果没有“ SSL Support => enabled”字符串,则需要重新编译imap扩展名。

缺少SSL支持会导致产生非常不清晰的错误消息:

Warning: imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX
Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification

答案 6 :(得分:0)

对于雅虎电子邮件,这对我有用

imap_open( "{imap.mail.yahoo.com:993/imap/ssl/novalidate-cert}INBOX", "Email", "PASSWORD" );