1
This commit is contained in:
@@ -603,20 +603,22 @@ class EmailClient extends Base
|
||||
$maxUid = $lastUid;
|
||||
|
||||
try {
|
||||
if ($lastUid > 0) {
|
||||
$searchRange = ($lastUid + 1) . ':*';
|
||||
$emails = imap_fetch_overview($imap, $searchRange, FT_UID);
|
||||
} else {
|
||||
$emails = imap_fetch_overview($imap, '1:*', FT_UID);
|
||||
// 仅拉取最近 7 天邮件(避免首次全量导致超时)
|
||||
$since = date('d-M-Y', strtotime('-7 days'));
|
||||
$uids = imap_search($imap, 'SINCE "' . $since . '"', SE_UID);
|
||||
if (!$uids) {
|
||||
$uids = [];
|
||||
}
|
||||
sort($uids);
|
||||
|
||||
if (!$emails) {
|
||||
$emails = [];
|
||||
}
|
||||
foreach ($uids as $uid) {
|
||||
$uid = intval($uid);
|
||||
if ($uid <= $lastUid) continue;
|
||||
|
||||
foreach ($emails as $overview) {
|
||||
$uid = intval($overview->uid);
|
||||
if ($uid <= $lastUid) {
|
||||
// 每封邮件单独取 overview(FT_UID 模式下传 uid)
|
||||
$ovArr = imap_fetch_overview($imap, (string)$uid, FT_UID);
|
||||
$overview = (!empty($ovArr) && isset($ovArr[0])) ? $ovArr[0] : null;
|
||||
if (!$overview) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user