我的目标是能够使用表单,复选框和提交按钮(删除按钮)来删除特定的电子邮件。
我开始使用这个连接脚本:
<?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>