Сохранение нескольких аттачей (IMAP)

Denix

Новичок
Сохранение нескольких аттачей (IMAP)

В случае, если приходит письмо с одним вложением - получаю контент вложения так:

PHP:
$content = imap_base64(imap_fetchbody($this->handler, $oMessage->Msguid, 2 , FT_UID))
Т.е. двойка в третьем параметре - достает один из приаттаченых файлов.

Как достать все остальные?

Пробовал 2.1, ... - не получилось.

Где про эти цифры найти?

Пы.Сы. поиском не получилось :eek:
 

Гравицапа

elbirret elcno
Как достать все остальные?
Что это значит? Какова ожидаемая структура письма? Вложения могут быть во вложениях (то есть приаттаченное письмо например)...
[m]imap_fetchstructure[/m] ?
+
[m]imap_fetchbody[/m] - почитай комменты
+ рекомендую
использовать готовые решения PEAR:: IMAPv2 и/или PEAR::MIME
хотя конечно можешь и сам писать...но геморра с обработкой MIME сообщений с разной степенью вложенности найдёшь немало...
 

Denix

Новичок
Автор оригинала: Гравицапа
Что это значит? Какова ожидаемая структура письма? Вложения могут быть во вложениях (то есть приаттаченное письмо например)...
[m]imap_fetchstructure[/m] ?
Буду рассматривать только вариант без многоуровневой вложенности.

PHP:
stdClass Object
(
    [type] => 1
    [encoding] => 0
    [ifsubtype] => 1
    [subtype] => MIXED
    [ifdescription] => 0
    [ifid] => 0
    [ifdisposition] => 0
    [ifdparameters] => 0
    [ifparameters] => 1
    [parameters] => Array
        (
            [0] => stdClass Object
                (
                    [attribute] => BOUNDARY
                    [value] => ----------221DD7280EA19A
                )

        )

    [parts] => Array
        (
            [0] => stdClass Object
                (
                    [type] => 0
                    [encoding] => 0
                    [ifsubtype] => 1
                    [subtype] => HTML
                    [ifdescription] => 0
                    [ifid] => 0
                    [lines] => 94
                    [bytes] => 1993
                    [ifdisposition] => 0
                    [ifdparameters] => 0
                    [ifparameters] => 1
                    [parameters] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [attribute] => CHARSET
                                    [value] => us-ascii
                                )

                        )

                )

            [1] => stdClass Object
                (
                    [type] => 5
                    [encoding] => 3
                    [ifsubtype] => 1
                    [subtype] => JPEG
                    [ifdescription] => 0
                    [ifid] => 0
                    [bytes] => 40098
                    [ifdisposition] => 1
                    [disposition] => ATTACHMENT
                    [ifdparameters] => 1
                    [dparameters] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [attribute] => FILENAME
                                    [value] => 11812.jpg
                                )

                        )

                    [ifparameters] => 1
                    [parameters] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [attribute] => NAME
                                    [value] => 11812.jpg
                                )

                        )

                )

            [2] => stdClass Object
                (
                    [type] => 5
                    [encoding] => 3
                    [ifsubtype] => 1
                    [subtype] => JPEG
                    [ifdescription] => 0
                    [ifid] => 0
                    [bytes] => 72112
                    [ifdisposition] => 1
                    [disposition] => ATTACHMENT
                    [ifdparameters] => 1
                    [dparameters] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [attribute] => FILENAME
                                    [value] => 00023800.jpg
                                )

                        )

                    [ifparameters] => 1
                    [parameters] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [attribute] => NAME
                                    [value] => 00023800.jpg
                                )

                        )

                )

        )

)




+ рекомендую
использовать готовые решения PEAR:: IMAPv2 и/или PEAR::MIME
хотя конечно можешь и сам писать...но геморра с обработкой MIME сообщений с разной степенью вложенности найдёшь немало...
Возможно к этому прийду. Пока остались вложения, все-таки хочу закончить с ними.



Denix
немного не в тему, но там разбор писем с любым уровнем вложенности. может поможет?
http://440hz.ru/checkmail.php.txt

собственно все это было сделано для
http://440hz.ru/static/?NID=yg5wwn0fiepdd514
Почему не в тему, очень даже в тему.

ТОлько вот по твоему коду:



PHP:
if(!empty($pn)) $ppp = "$pn.".($p+1);
else			$ppp = $p+1;

.....

$gimg  = imap_fetchbody($mbox,$mnum,$ppp);
Тогда у меня (учитывая отсутствие вложенности) должно быть:
PHP:
imap_fetchbody($mbox,$mnum,2.1);
imap_fetchbody($mbox,$mnum,2.2);
...
 

Denix

Новичок
Автор оригинала: Гравицапа
imap_fetchbody($mbox,$mnum, 2);
imap_fetchbody($mbox,$mnum, 3);
Пасиб.
Справился вроде, хотя коряво вышло...

Наверное и правда прийдется позже перейти на чужие либы.
 
Сверху