Я пытаюсь сделать программу, которая принимает электронную почту от почты.
Все хорошо, красиво. Почти..
К сожалению, проблема в том, что почта «невидима». Сценарий меняет свой статус на «увиденный».
И я не хочу этого.
Я попытался сделать это: вначале я проверяю, что электронные письма не видны, а в конце я бы хотел, чтобы они восстановили статус «невидимые».
Тем не менее, я встречался только с «imap_setflag_full», и у него нет этой опции.
public function pop_mails(){
$message_count = imap_num_msg($this -> _inbox);
$date = date('Y-m-d');
mkdir("./$date", 0777);
for($i=1; $i<=$message_count; $i++){
$overview = imap_fetch_overview($this->_inbox, $i);
$seen = $overview[0] -> seen;
$name = imap_utf8($overview[0]->subject);
$named = strtr($name, ":", ".");
$headers = imap_fetchheader($this->_inbox, $i, FT_PREFETCHTEXT);
$body = imap_body($this->_inbox, $i);
file_put_contents($date.'/'.$named. '.eml', $headers . "\n" . $body);
if($seen =="0") {
imap_setflag_full($this->_inbox, $seen, "\\Seen");
}
}
}
Вы можете мне помочь?
Вам просто нужно очистить \\ Seen Flag в конце вашего процесса:
$ status = imap_clearflag_full ($ this -> _ входящие, «$ email_number», «\\ Seen»);
Других решений пока нет …