Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> приём email с аттачем, IMAP функции 
:(
    Опции темы
Quadri
Дата 10.2.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



всем ку

Вобщем задача принять письмецо с приаттченым файлом и записать в папку.
использую imap_fetchstructure() и imap_fetchbody() но не въеду как там эти body part'ы использовать. дока какая то не просвятляющая по этому вопросу.
Ткните кто знает хотя бы как эти body part выцепить и чё это такое и с чем это есть
Вообще горю помогите плиз

Спасибо
PM MAIL   Вверх
Mal Hack
Дата 10.2.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 5
Всего: 261



PM ICQ   Вверх
Quadri
Дата 11.2.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



Всё. Разобрался.

Ниже демо-скрипт который пробегается по письмам в ящике и всё атачи сохраняет рядышком с родными именами.
Мож кому пригодится...

Код

$pop_server='pop.mail.ru';   // pop3 domain
$port=110;                            // pop3 port (110 - default value)
$username='name';              // pop3 username
$password='pass';               // pop3 password

function get_attach_info_array($box, $mnum) {
$k=0;
$mstruct=imap_fetchstructure($box, $mnum);
for($j=0;$j<=count($mstruct->parts);$j++)
{
  if (strtoupper($mstruct->parts[$j]->disposition)=='ATTACHMENT' || strtoupper($mstruct->parts[$j]->disposition)=='INLINE')  // INLINE - специально для Thunderbird
  {
     $attachments[$k]['name']=$mstruct->parts[$j]->dparameters[0]->value;
     $attachments[$k]['part']=$j+1;
     $attachments[$k]['encoding']=$mstruct->parts[$j]->encoding;
     $attachments[$k]['type']=$mstruct->parts[$j]->type;
     $k++;
  }
}
return $attachments;
}

$login_str='{'.$pop_server.':'.$port.'/pop3}INBOX';
$box=imap_open($login_str, $username, $password);
$box_info=imap_mailboxmsginfo($box);

for($i=1;$i<=$box_info->Nmsgs;$i++)
{
$attachments = get_attach_info_array($box,$i);
if($attachments)
{
  for($j=0;$j<count($attachments);$j++) {
       $mbody=imap_base64(imap_fetchbody($box, $i, $attachments[$j]['part']));
     $fp=fopen($attachments[$j]['name'], 'w+');
     fwrite($fp, $mbody, strlen($mbody));
     fclose($fp);
  }
}
}
imap_close($box);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.