【发布时间】: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,不再获取它们。