Столкнулся с тем что не могу найти русского заголовка через imap_search, пробовал баловаться с кодировками, но безрезультатно. Может уже кто сталкивался с таким?
<?php
$username = 'user@gmail.com'
$password = 'user_pass'
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$mbox = imap_open($hostname, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());
$fol = imap_search($mbox,'SUBJECT "Импорт контактов и старых писем"'); // не ищет
$fol = imap_search($mbox,'SUBJECT "Google"'); // находит письма
for ($i=0; $i<count($fol); $i++) {
echo "Match found in number: $fol[$i]<BR>\n";
$u = $fol[$i];
echo $u;
}
$str = imap_body($mbox, $u);
echo mb_convert_encoding($str, "UTF-8", "Base64");
?>
Спустя 2 дня, 18 часов, 23 минуты, 54 секунды (18.06.2012 - 10:09) nickolik написал(а):
Возможно надо передать кодировку в поиске.
Но указание кодировкаи не очень то и спасает. Но может я не то делаю??
Вот пример кода:
array imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NIL ]] )
Но указание кодировкаи не очень то и спасает. Но может я не то делаю??
Вот пример кода:
$te = mb_convert_encoding("Импорт контактов и старых писем", "KOI8-R", "windows-1251");
$fol = imap_search($mbox,'SUBJECT "'.$te, KOI8-R);
Спустя 2 дня, 1 час, 50 минут, 15 секунд (20.06.2012 - 12:00) nickolik написал(а):
Решил сам.
Пропустил параметр int $options = SE_FREE
Рабочий код выглядит вот так
Всем спасибо! :P
Пропустил параметр int $options = SE_FREE
Рабочий код выглядит вот так
$te = mb_convert_encoding("Импорт контактов и старых писем", "KOI8-R", "windows-1251");
$fol = imap_search($mbox,'SUBJECT ".$te."',SE_UID,'UTF-8');
for ($i=0; $i<count($fol); $i++) {
echo "Match found in number: $fol[$i]<BR>\n";
echo $fol[$i];
$str = imap_body($mbox, $fol[$i], FT_UID);
echo mb_convert_encoding($str, "UTF-8", "Base64");
}
?>
Всем спасибо! :P