【问题标题】:How to download email with PHP如何使用 PHP 下载电子邮件
【发布时间】:2012-06-22 01:39:42
【问题描述】:

我正在尝试使用 PHP 的标准库从头开始编写一个非常简单的基于 Web 的电子邮件客户端。我会诚实的;我不完全确定我在做什么,所以这是我为了试错学习而拼凑起来的东西。但是,无论我尝试什么,我都会超时。有什么建议吗?我知道预期的输出看起来不太漂亮,但就像我说的,这只是为了试错。

<?php

$stream = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', '<email_removed>', '<password_removed>') or
    die('Cannot connect to server: ' . imap_last_error());

$date = date('d M Y', strtotime('-1 month'));
if ($emails = imap_search($stream, "SINCE \"$date\"")) {
    rsort($emails);

    foreach ($emails as $email_number) {
        echo imap_fetchbody($stream, $email_number, 2);
    }
}

imap_close($stream);

?>

我得到的输出如下。

警告:imap_open() [function.imap-open]:无法在第 3 行打开流 {imap.gmail.com:993/imap/ssl}INBOX 无法连接到服务器:无法连接到 gmail-imap.l.google.com,993:网络无法访问

通知:未知:无法连接到 gmail-imap.l.google.com,993:第 0 行未知中的连接超时 (errflg=1)

通知:未知:无法连接到 gmail-imap.l.google.com,993:第 0 行未知中的连接超时 (errflg=1)

通知:未知:无法连接到 gmail-imap.l.google.com,993:第 0 行的未知中的网络无法访问 (errflg=2)

【问题讨论】:

  • Network is unreachable 通常意味着您无法获得任何出站网络。
  • 你的机器可以路由到gmail-imap.l.google.com吗?您的网络服务器是否被 mandatory access control 工具所限制,例如 SELinuxTOMOYOSMACK
  • @sarnold,我不确定。我怎样才能找到它?
  • 尝试类似:ping gmail-imap.l.google.comtelnet gmail-imap.l.google.com imapsopenssl s_client -connect gmail-imap.l.google.com:imaps
  • 太棒了!现在您知道需要做什么了——弄清楚为什么您的服务器无法与这些主机建立出站连接。您可以与 any 主机建立出站连接吗?弄清楚哪些是允许的,哪些是拒绝的。您可能需要摆弄系统的防火墙或让主机的管理员摆弄他们的防火墙。如果这是 EC2 实例,则需要修改组策略。

标签: php email imap


【解决方案1】:

经过进一步研究,我的主人(HostMonster)disallows this,所以我将不得不将我的业务转移到其他地方。 :/

【讨论】:

  • Bluehost 显然也禁用了它
  • @FranciscoPresencia,我相信它们属于同一家公司。
猜你喜欢
  • 2011-09-06
  • 2016-06-30
  • 1970-01-01
  • 2015-01-23
  • 2014-03-18
  • 1970-01-01
  • 2019-06-18
  • 2020-07-20
  • 2021-04-09
相关资源
最近更新 更多