Я беру данные из Gmail с помощью этого кода
<?php $data = array(
// email account
'email' => array(
'hostname' => '{imap.gmail.com:993/imap/ssl}INBOX',
'username' => $emailAddress,
'password' => $emailPassword
),
// inbox pagination
'pagination' => array(
'sort' => $sortBy,
'limit' => 10,
'offset' => $offset
)
);
$result = array();
$imap = imap_open($data['email']['hostname'], $data['email']['username'], $data['email']['password']) or die ('Cannot connect to yourdomain.com: ' . imap_last_error());
$read = imap_search($imap, 'ALL');
$overview = imap_fetch_overview($imap, $read[$i], 0);
$header = imap_headerinfo($imap, $read[$i], 0);
$mail = $header->from[0]->mailbox . '@' . $header->from[0]->host;
$image = '';
$structure = imap_fetchstructure($imap, $read[$i]);
if (isset($structure->parts) && is_array($structure->parts) && isset($structure->parts[1])) {
$part = $structure->parts[1];
if ($part->encoding == 3) {
$message = imap_fetchbody($imap,$read[$i],1.2);
$message = imap_qprint($message);
} else if ($part->encoding == 1) {
$message = imap_8bit($message);
} else {
$message = imap_fetchbody($imap,$read[$i],2);
$message = imap_qprint($message);
}
}else{
$message = imap_body($imap, $read[$i],0);
}
?>
Все данные я получаю правильно, однако, когда я захожу на страницу со списком рассылки, полученные письма меняются на чтение.
Раньше он работал нормально, после некоторого использования появилась эта проблема. Есть идеи, в чем может быть причина?
Все, что делает ваш код, это логин, а где остальное?
Привет @Max Я редактировал вопрос. В какой функции я должен использовать вариант PEEK?






В imap_fetchbody добавьте флаг FT_PEEK, чтобы предотвратить автоматическую очистку флага \ Seen.
imap_fetchbody($imap, $read[$i], 1.2, FT_PEEK);
См. Документацию по флагу опции на официальный сайт.
Получение электронных писем помечает их как ПОСМОТРЕТЬ по умолчанию, если вы не используете вариант PEEK.