你好伙计们我试图使用php imap来获取邮箱消息,但我得到Network is unreachable错误

这是我的代码

<h1>Gmail Email Inbox using PHP with IMAP</h1>
<?php
    if (! function_exists('imap_open')) {
        echo "IMAP is not configured.";
        exit();
    } else {
        ?>
<div id="listData" class="list-form-container">
    <?php
        
        /* Connecting Gmail server with IMAP */
        $connection = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'My correct email address here', 'My correct password here') or die('Cannot connect to Gmail: ' . imap_last_error());
        
        /* Search Emails having the specified keyword in the email subject */
        $emailData = imap_search($connection, 'SUBJECT "Article "');
        
        if (! empty($emailData)) {
            ?>
    <table>
        <?php
            foreach ($emailData as $emailIdent) {
                
                $overview = imap_fetch_overview($connection, $emailIdent, 0);
                $message = imap_fetchbody($connection, $emailIdent, '1.1');
                $messageExcerpt = substr($message, 0, 150);
                $partialMessage = trim(quoted_printable_decode($messageExcerpt)); 
                $date = date("d F, Y", strtotime($overview[0]->date));
                ?>
        <tr>
            <td><span class="column">
                    <?php echo $overview[0]->from; ?>
            </span></td>
            <td class="content-div"><span class="column">
                    <?php echo $overview[0]->subject; ?> - <?php echo $partialMessage; ?>
            </span><span class="date">
                    <?php echo $date; ?>
            </span></td>
        </tr>
        <?php
            } // End foreach
            ?>
    </table>
    <?php
        } // end if
        
        imap_close($connection);
    }
    ?>
</div>

我应该从我的gmail帐户中获取邮箱,并将其显示在html中,如上面的代码所示. 让我们展示一些爱.

推荐答案

问题不是来self 的代码,而是最初说不可达时,它是基于关闭的端口993.并在得到证书错误和身份验证失败后,身份验证无效.这是Gmail的问题.我不知道打开安全性较低的应用程序是否能解决这个问题,因为我也找不到它.我的意思是,Gmail不支持以纯文本作为邮箱和密码的身份验证.他们使用OAuth,如果你要连接到Gmail,你最好使用它,否则Gmail不会连接.我试了这么多次才发现的.希望这能对其他沮丧的用户有所帮助.如果你需要连接Gmail,使用OAuth,它在我的情况下运行得很好.

Php相关问答推荐

PHP在将数组子集赋给变量时是否复制数组子集?

PHP FFI—将PHP数组转换为C指针数组

累加平面数组中数字子集的所有组合,以生成组合及其乘积的二维数组

Symfony装置加载:try 从命名空间加载类";ClassUtils";Doctrine\Common\Util";

PHP日期操作,将多个日期输出为格式化字符串

在内部API请求之后,在响应客户端之前,是否忘记了PHP中的Header()?

如何使用php一次更新两个数据库中的MySQL表

无法使用php IMAP从Gmail获取收件箱

WooCommerce中基于用户角色的不同产品差价

如何将LARAVEL模块路径和项目路径合并,因为当我使用模块路径时,它们会覆盖项目路径

限制联系人页面仅允许在WooCommerce中登录的用户

根据WooCommerce的定制订单状态增加产品库存

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

按类别层次 struct 过滤 Laravel 集合

单个产品页面 WooCommerce 订阅价格字符串的更改

图片上传成功

在WooCommerce中显示 checkout 的高级自定义字段(Advanced Custom Fields)并保存其值

如何使用 WhatsApp Cloud API 向 WhatsApp 发送消息,而无需在发送消息之前注册收件人号码?

Laravel 8:会话不适用

如何将数字文本文件添加到 PHP 数学方程式中?