【问题标题】:IMAP_OPEN Crashes Web PageIMAP_OPEN 使网页崩溃
【发布时间】:2018-06-08 20:34:16
【问题描述】:

您好,我正在尝试通过 PHP 页面上的 IMAP(启用 IMAP 并访问安全性较低的应用程序 On)从 Gmail 帐户中检索电子邮件,但是当我尝试使用 imap_open 连接到我的帐户时,一切都崩溃了。这是我的代码:

    <?php 
    /* connect to gmail */ $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
    $username = 'xxxx@gmail.com'; 
    $password = 'xxxxxxxxxxxxxxxx';
    echo "test"; 
    echo extension_loaded ( "imap" );

    /* try to connect */ 
$inbox = imap_open($hostname,$username,$password); 
echo "test";

    /* if emails are returned, cycle through each... */ 
if($emails) {

      /* begin output var */  
 $output = '';

      /* put the newest emails on top */ 
  rsort($emails);

      /* for every email... */   
foreach($emails as $email_number) {

        /* get information specific to this email */
        echo "test";
        $overview = imap_fetch_overview($inbox,$email_number,0);
        $message = imap_fetchbody($inbox,$email_number, 1.2);

        /* output the email header information */
        $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
        $output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
        $output.= '<span class="from">'.$overview[0]->from.'</span>';
        $output.= '<span class="date">on '.$overview[0]->date.'</span>';
        $output.= '</div>';

        /* output the email body */
        $output.= '<div class="body">'.$message.'</div>';   }

      echo $output; }

    /* close the connection */ imap_close($inbox); ?>

感谢您的宝贵时间

【问题讨论】:

  • 您收到什么错误?先开启报错:stackoverflow.com/questions/1053424/…
  • 就在您发表评论之前,我添加了这些行 :) 但在 IE 上,我有一个错误 HTTP 500,而在 Mozilla/chrome 上我只是得到一个空白页(同样是 safari,刚刚检查过)跨度>

标签: php email crash imap


【解决方案1】:

您的 PHP 未使用 IMAP 编译 要么 这通常是您的 php.ini 中缺少 IMAP 支持的可能影响

请在此处启用它,这是一个已在不同操作系统和场景中修复此类问题的线程 Fatal error: Call to undefined function imap_open() in PHP

PHP 7 和 7.1 已内置,但如果未启用 IMAP,PHP 5.X 或 PHP 7.2 可能会出现一些问题 修复 WHM : (因为这不在上面的链接中) WHM -> EasyApache 4 -> PHP 扩展“php*-php-imap”(例如 PHP 7.2 中的 php72-php-imap) 如果仍然无法正常工作,请联系您的托管服务提供商的服务器管理员,他们将在 PHP 配置中启用它

要进行故障排除,您需要先启用错误报告,如 cmets 和此链接:How do I get PHP errors to display?

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

您可以根据错误报告的结果进行故障排除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2013-06-12
    相关资源
    最近更新 更多