Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Забрать почту с yandex по imap кроме папки INBOX
 
 автор: TetRiska   (10.06.2016 в 18:52)   письмо автору
 
 

Всем привет. Наконец удалось настроить скрипт для подключения, но пришлось на домен оформить не подписанный сертификат. Но это такое.

Собственно код:

header("Content-Type: text/html; charset=utf-8");

error_reporting(0);

require_once("functions.php");

$mail_login     = "***@yandex.ru";
$mail_password  = "***";
$mail_imap         = "{imap.yandex.ua:143/imap/novalidate-cert}";

$connection = imap_open($mail_imap, $mail_login, $mail_password);

if(!$connection){
    echo("Ошибка соединения с почтой - ".$mail_login);
    exit;
}else{
    $msg_num = imap_num_msg($connection);
    
    $mails_data = array();
    
    for($i = 1; $i <= $msg_num; $i++){
        $msg_header = imap_header($connection, $i);
        
        $mails_data[$i]["time"] = time($msg_header->MailDate);
        $mails_data[$i]["date"] = $msg_header->MailDate;
        
        foreach($msg_header->from as $data){
            $mails_data[$i]["from"] = $data->mailbox."@".$data->host;
        }
        
        $mails_data[$i]["title"] = get_imap_title($msg_header->subject);
        
        $msg_structure = imap_fetchstructure($connection, $i);
        $msg_body        = imap_fetchbody($connection, $i, 1);
        $body            = "";
        
        $recursive_data = recursive_search($msg_structure);
        
        if($recursive_data["encoding"] == 0 || $recursive_data["encoding"] == 1){
            $body = $msg_body;
        }
        
        if($recursive_data["encoding"] == 4){
            $body = structure_encoding($recursive_data["encoding"], $msg_body);
        }
        
        if($recursive_data["encoding"] == 3){
            $body = structure_encoding($recursive_data["encoding"], $msg_body);
        }
        
        if($recursive_data["encoding"] == 2){
            $body = structure_encoding($recursive_data["encoding"], $msg_body);
        }
        
        if(!check_utf8($recursive_data["charset"])){
            $body = convert_to_utf8($recursive_data["charset"], $msg_body);
        }
        
        $mails_data[$i]["body"] = base64_encode($body);
    }
}

imap_close($connection);

Почта выводится из папки INBOX. Как вывести из другой папки, допустим отправленные? Спасибо!

  Ответить  
 
 автор: KPETuH   (13.06.2016 в 10:44)   письмо автору
 
   для: TetRiska   (10.06.2016 в 18:52)
 

Насколько я понимаю тут
"{imap.yandex.ua:143/imap/novalidate-cert}"

после скобочки нужно вписать папку.

Не уверен в правильности ответа, но попробуйте ))).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования