use*_*711 11 php email imap phpmyadmin gmail-imap
我想借助php在我的网站上创建一个IMAP服务.它基本上只有很少的步骤.
我想要的主要部分是我得到一个gmail帐户文件夹列表,点击一个特定文件夹,该文件夹中的邮件列表应该打开,点击任何特定邮件,其详细信息应该打开.
我有文件夹列表,我有一个邮件列表,我有邮件的详细信息,但它们是单独的部分,但我希望结合并创建一个如上所述的过程.
下面给出3个步骤的代码
步骤1列出文件夹:它将列出gmail的所有文件夹.我的代码是
$folders = imap_list($imap, "{imap.gmail.com:993/imap/ssl}", "*");
echo "<ul>";
foreach ($folders as $folder) {
    $folder = str_replace("{imap.gmail.com:993/imap/ssl}", "", $folder);
     $folder = str_replace("[Gmail]/", "", $folder);
    echo '<li>' . $folder . '</li>';
}
echo "</ul>";
o/p第1步
INBOX
DRAFT
SENT
TRASH
步骤2列出电子邮件(点击文件夹邮件列表应该打开)
$numMessages = imap_num_msg($imap);
for ($i = $numMessages; $i > ($numMessages - 20); $i--)
    {
        $header = imap_header($imap, $i);
        $fromInfo = $header->from[0];
        $replyInfo = $header->reply_to[0];
        $details = array(
        "fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host))
            ? $fromInfo->mailbox . "@" . $fromInfo->host : "",
        "fromName" => (isset($fromInfo->personal))
            ? $fromInfo->personal : "",
        "replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host))
            ? $replyInfo->mailbox . "@" . $replyInfo->host : "",
        "replyName" => (isset($replyTo->personal))
            ? $replyto->personal : "",
        "subject" => (isset($header->subject))
            ? $header->subject : "",
        "udate" => (isset($header->udate))
            ? $header->udate : ""
        );
    $uid = imap_uid($imap, $i);
    $datee= gmdate("F j, Y, g:i a", $details["udate"] );
    echo "<ul>";
    echo "<li><strong>From:</strong>" . $details["fromName"];
    echo " " . $details["fromAddr"] . "</li>";
    echo "<li><strong>Subject:</strong> " . $details["subject"] . "</li>";
    echo "<li><strong>DATE:</strong> " . $datee . "</li>";
    } 
第2步的o/p(点击该邮件的特定邮件内容应该打开)
From:ABC
Subject: TOPIC
DATE: September 2, 2015, 9:00 am
第3步查看消息
$message_count = imap_num_msg($imap);
    for ($i = 1; $i <= $message_count; ++$i) {
        $header = imap_header($imap, $i);
        $body = trim(substr(imap_body($imap, $i), 0, 100));
        $prettydate = date("jS F Y", $header->udate);
        if (isset($header->from[0]->personal)) {
            $personal = $header->from[0]->personal;
        } else {
            $personal = $header->from[0]->mailbox;
        }
        $email = "$personal <{$header->from[0]->mailbox}@{$header->from[0]->host}>";
        echo "On $prettydate, $email said \"$body\".\n";
    }
任何人都可以请电话我如何达到上述要求
有几种方法可以做到这一点。
一种方法是:
您可以考虑使用为文件夹结构和消息列表中的项目创建超链接,然后将 JavaScript 函数与这些超链接相关联
更改 
echo '<li>' . $folder . '</li>';
为 
echo '<li><a name="' . $folder . '" onClick="listFolder(this.name)" href="#">'. $folder . '</a></li>';将每个文件夹名称创建为超链接,单击该超链接可以触发 JavaScript 函数。
你必须编写 javascript 函数,例如。listFolder()列出文件夹的内容。
| 归档时间: | 
 | 
| 查看次数: | 764 次 | 
| 最近记录: |