Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Gmail IMAP已发送邮件_Php_Gmail_Imap - Fatal编程技术网

PHP Gmail IMAP已发送邮件

PHP Gmail IMAP已发送邮件,php,gmail,imap,Php,Gmail,Imap,我从gamil收到了已发送的邮件,但我们如何排除已获取的邮件??基本上,我正在将这些电子邮件添加到数据库中,并希望排除那些已经添加到数据库中的邮件 这是我的一小段代码 $imapPath = '{imap.gmail.com:993/ssl}[Gmail]/Sent Mail'; $inbox = imap_open($imapPath, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());

我从gamil收到了已发送的邮件,但我们如何排除已获取的邮件??基本上,我正在将这些电子邮件添加到数据库中,并希望排除那些已经添加到数据库中的邮件

这是我的一小段代码

$imapPath = '{imap.gmail.com:993/ssl}[Gmail]/Sent Mail';
$inbox = imap_open($imapPath, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());

$emails = imap_search($inbox, 'BODY "Ticket #" SINCE "'.date("j F Y", strtotime('yesterday')).'"');
$output = '';
$count = 0;
if (is_array($emails) || is_object($emails)) {
    $ticket_no = array();
    foreach ($emails as $mail) {
        $overview = imap_fetch_overview($inbox, $mail, 0);

        $message = imap_body($inbox, $mail, FT_PEEK);
       
        list($text,$ticketno) = explode("#",$message);
        
        $message = strstr($message, 'charset="UTF-8"');
        $message = substr($message, 16, -83);

        $message = substr($message, 0, strpos($message, "Stay well and wash those paws!"));

        $ticketno = substr($ticketno, 0, strpos($ticketno, "*"));
        $ticketno = (int)$ticketno;
    }
}

通过在数据库中添加msg no并检查每个id来修复此问题。

您可以通过消息id来完成此操作。通常的方法是使用UID(FT_UID和friends),然后跟踪您看到的UID,不再获取它们。