注意:Unknown: 在第0行中,连接到 mail.domain.com,143 失败:连接超时 (errflg=2)
imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')
端口143是开放的,我没有被防火墙限制,我的服务器使用自签名证书。
我真的不明白为什么我不能连接到我的邮件服务器。
我到处搜寻但没有找到答案...
imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')
$mails = imap_search($stream, 'UNSEEN');
rsort($mails);
foreach ($mails as $mailId) {
imap_fetch_overview($stream, $mailId, 0);
} //that was the mistake when email number is too big!
imap_open("{mail.domain.com:110/pop3/notls}INBOX", 'login', 'password')
imap_open("{mail.domain.com:993/imap/ssl/novalidate-cert}INBOX", 'login', 'password') or die('Cannot connect: ' . print_r(imap_errors(), true))
我自己也遇到了同样的问题。就像你所看到的。
所以,我是如何解决这个问题的:
进入您的Google帐户,您需要更改安全设置。
进入安全选项卡。
向下滚动,您会找到登录Google
关闭以下两个设置:使用手机登录
和2步验证
。
并将允许不安全的应用程序访问设置为开启
。
就这样,对我有用,希望对您也有用。
--with-imap-ssl
选项编译的。你需要将它传递给configure
或者如果你正在使用Docker:docker-php-ext-configure imap --with-imap-ssl
docker-php-ext-install imap
php -i | grep imap -A 5
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
对于雅虎电子邮件,这是对我有效的方法
imap_open( "{imap.mail.yahoo.com:993/imap/ssl/novalidate-cert}INBOX", "Email", "PASSWORD" );
Cannot connect: Array ( [0] => Connection failed to mail.domain.com,143: Connection timed out )
- PASTAGA