IMAP电子邮件标识符在PHP中是唯一的吗?

时间:2015-10-05 02:46:30

标签: php email gmail imap gmail-imap

我的目标是能够使用表单,复选框和提交按钮(删除按钮)来删除特定的电子邮件。

我开始使用这个连接脚本:

<?php

//Inbox - Connect;
$inbox = imap_open($folder_inbox,$username,$password) or die('Error connecting to Gmail: ' . imap_last_error());

//Grab Inbox Emails;
$inbox_emails = imap_search($inbox,'ALL');

//If there are emails;
if($inbox_emails) {

    //Output Arrays;
    $inbox_from = array();
    $inbox_subject = array();
    $inbox_date = array();
    $inbox_msg = array();

    //Put the newest emails to the top;
    rsort($inbox_emails);

    //For each email, Give it an email number;
    foreach($inbox_emails as $inbox_email_number) {

        //Get information specific to this email;
        $inbox_overview = imap_fetch_overview($inbox,$inbox_email_number,0);

        $str_date = $inbox_overview[0]->date;
        include('../func/inbox/grab/datefix.php');

        mb_internal_encoding('UTF-8');

        //Add email information to the arrays;
        $inbox_read[] = $inbox_overview[0]->seen;
        $inbox_from[] = str_replace('"',"", str_replace("_"," ", mb_decode_mimeheader($inbox_overview[0]->from)));
        $inbox_subject[] = str_replace("_"," ", mb_decode_mimeheader($inbox_overview[0]->subject));
        $inbox_date[] = $str_date;
        //$inbox_msg[] = imap_fetchbody($inbox,$inbox_email_number,2);

    }

} 

//Close The Connection;
imap_close($inbox);

?>

我知道how to move an email to a trash folder但我担心在为文件夹获取一组ID之间可能存在竞争条件,几分钟后,请求删除其中一个项目。

例如,我的表单显示2个电子邮件主题,我单击与电子邮件1相关的复选框,其ID为“1”,然后单击提交表单的删除按钮。该复选框将包含name="1"参数。现在,当我们提交表单时,可以在提交页面上说它使用post获取id 1,但是我们在加载PHP文件之前说我收到了一封新邮件,不会错误地删除新邮件而不是我们检查的电子邮件吗? / p>

0 个答案:

没有答案