注意:未知:连接无法通过mail.domain.com,143:连接 在第0行的未知中超时(errflg = 2)
imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')
端口143已打开,我不在防火墙后面,我的服务器使用自签名证书。
我真的不明白为什么我无法连接到我的邮件服务器
我到处搜索但我找不到答案..
答案 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)
我自己也遇到了同样的问题。如您所见。
所以,我如何解决这个问题:
转到您的Google Account,您必须更改安全设置。
转到安全性标签。
向下滚动,您会发现登录Google
打开OFF
这两个设置:
然后降低安全应用访问权限 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" );