This commit is contained in:
wangjinlei
2026-04-09 11:04:11 +08:00
parent a802b2e923
commit d92df3e103
3 changed files with 462 additions and 14 deletions

View File

@@ -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) {
// 每封邮件单独取 overviewFT_UID 模式下传 uid
$ovArr = imap_fetch_overview($imap, (string)$uid, FT_UID);
$overview = (!empty($ovArr) && isset($ovArr[0])) ? $ovArr[0] : null;
if (!$overview) {
continue;
}