我正在开发一个将电子邮件下载到数据库中的系统,但我只想从收件箱中抓取新的电子邮件。
此刻我有这个程序:
//find new emails
$news = imap_search($conn, 'SINCE "4 February 2014"');
但是我认为按日期跟踪实际上并不是一个好习惯,而且我希望将其替换为允许我只抓取 Msgno 比上一个更大的电子邮件的查询有
有没有办法让 imap_search()或任何其他功能只选择Msgno大于指定值的电子邮件?
答案 0 :(得分:0)
可能的方法:
$count = imap_num_msg($connection);
for($msgno = 1; $msgno <= $count; $msgno++) {
$headers = imap_headerinfo($connection, $msgno);
if($headers->Unseen == 'U') {
... do something ...
}
}
答案 1 :(得分:0)
好的,所以我最终通过以下程序解决了这个问题:
在中间下载everysingle电子邮件并将其存储到数据库中。
// calculamoselmáximo $ maximo = imap_num_msg($ conn);
//comenzamos desde... (from db)
$msgno = 1
//recorremos los mails
for($msgno <= $maximo; $msgno++) {
//sacamos la información del email especificado
$email['header'] = imap_headerinfo( $conn, $nuevo );
$email['body'] = imap_fetchbody ( $conn, $nuevo, 1);
$emails[] = $email;
}
亲切的问候!