【问题标题】:PHP Gmail IMAP Sent ItemsPHP Gmail IMAP 已发送项目
【发布时间】:2020-12-16 18:56:24
【问题描述】:

我从 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;
    }
}

【问题讨论】:

  • 您可以通过消息 ID 做到这一点。
  • 通常的方法是使用 UID(FT_UID 和好友),然后跟踪您看到的 UID,不再获取它们。

标签: php gmail imap


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-02-23
    • 2012-08-31
    • 2014-10-20
    • 2014-09-09
    • 2016-09-01
    • 2011-04-21
    • 1970-01-01
    • 2023-03-19
    • 2012-12-04
    相关资源
    最近更新 更多