【问题标题】:imap_open : couldn't open stream to my mail serverimap_open : 无法打开到我的邮件服务器的流
【发布时间】:2014-05-12 07:33:10
【问题描述】:

注意:未知:与 mail.domain.com 的连接失败,143:连接 第 0 行 Unknown 中超时 (errflg=2)

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

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

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

我到处搜索,但没有找到答案..

【问题讨论】:

  • 你遇到了什么错误?
  • Cannot connect: Array ( [0] => Connection failed to mail.domain.com,143: Connection timed out )
  • 当服务器没有运行 IMAP 服务器时会发生此错误。如果您尝试连接 gmail 或任何其他邮件服务器,则必须从设置中启用 imap。如果您有 VPS,请检查您的 dovecot 日志。
  • 如果您使用 SSL,您可能需要端口 993。如果您使用纯文本,则为 143。如果您使用 STARTTLS,则为 143。您可以从您的网站 telnet托管到 mail.domain.com 143 并获得 * OK 提示?

标签: php email imap


【解决方案1】:

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

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(): 无法打开流 {imap.gmail.com:123/imap/ssl}INBOX in, ,,,,,,,,,,,,无法连接到Gmail:无法对​​IMAP服务器进行身份验证:[ALERT]请通过您的网络浏览器登录:support.google.com/mail/acco..........what我做错了请告诉我
【解决方案2】:

就我而言,这成功了:

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

【讨论】:

    【解决方案3】:

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

    试试

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

    别忘了打开那个端口

    【讨论】:

    • 你上面的 cmets 反驳说:你说你有一个自签名证书,它只对 SSL 有用。
    • 是的,对不起。我使用 SSL 协议,但它使用自签名证书。
    • 默认的 IMAP 安全端口是 993,而不是 585。
    【解决方案4】:

    我写了一个库。
    不知道它是否适用于您的主机。
    但你肯定可以试试。 http://vivoauthimap.vivsoftware.in/

    【讨论】:

      【解决方案5】:

      在我的例子中,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】:

        我自己也有同样的问题。如您所见。

        那么,我是如何解决这个问题的:

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

        转到安全标签。

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

        OFF这两个设置:

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

        然后关闭不太安全的应用访问ON

        就是这样,它对我有用,希望对你有用。

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            猜你喜欢
            • 2015-10-03
            • 1970-01-01
            • 1970-01-01
            • 2013-10-07
            • 2021-03-27
            • 2014-04-16
            • 2014-10-20
            • 2019-09-25
            • 2021-04-12
            相关资源
            最近更新 更多