The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
POP3 на Perl, !*! tian, 26-Ноя-11, 19:34  [смотреть все]
Приветствую!

Подскажите плиз - мне надо на перле проверить почту по POP3 и приложенный файл к письму вытащить и положить в каталог.
Как прочитать письмо, положить в файл - это все понятно.
Но как простыми средствами из письма вытащить файл ? Неужели нет модуля, который просто получая на входе текст письма, на выходе записывает файл или файлы в каталог ?
Смотрел cpan - не нашел, но может не в ту сторону смотрел...
Ясно, что можно самому реализовать это, но зачем, если возможно есть готовое ?
Кто в курсе, направьте )))
Спасибо.

  • POP3 на Perl, !*! Square, 20:11 , 26-Ноя-11 (1)
    >[оверквотинг удален]
    > приложенный файл к письму вытащить и положить в каталог.
    > Как прочитать письмо, положить в файл - это все понятно.
    > Но как простыми средствами из письма вытащить файл ? Неужели нет модуля,
    > который просто получая на входе текст письма, на выходе записывает файл
    > или файлы в каталог ?
    > Смотрел cpan - не нашел, но может не в ту сторону смотрел...
    > Ясно, что можно самому реализовать это, но зачем, если возможно есть готовое
    > ?
    > Кто в курсе, направьте )))
    > Спасибо.

    http://www.google.ru/search?ie=UTF-8&hl=ru&q=POP3%20�...

    первая ссылка:

    http://users.livejournal.com/dy_/6259.html

    • POP3 на Perl, !*! tian, 20:24 , 26-Ноя-11 (2)
      > первая ссылка:
      > http://users.livejournal.com/dy_/6259.html

      Благодарю, я неверно стало быть формулировал запрос к гуглу.
      Вопрос можно считать закрытым - зацепки есть.
      И вот еще - сейчас смотрю в сторону Mail::Box - нашел еще пример в недрах исходников, может кому пригодится:

      foreach my $message ($folder->messages)
      {   printf "%3d. %s\n", $message->seqnr, $message->subject;

          $message->printStructure;
          my $m = $message->clone;

          unless($m->isMultipart)
          {   $outbox->addMessage($m);
              next;
          }

          foreach my $part ($m->parts)
          {
               # Strip attachments larger than 16K. Another example would be:
               #   next if $part->body->mimeType ne 'text/plain';
               next unless $part->body->size > 16384;

               print "\n**** Stripping Attachment "; # ,$part->head,"\n";

               # Warning: double names possible!  Put each message in seperate dir
               my $attachment = $part->body->dispositionFilename($attachments);
               print $attachment,"\n";

               unless(-f $attachment)     #  Write attachment to file
               {   open(FH, '>', $attachment)
                       or die "ERROR: cannot write attachment to $attachment: $!\n";

                   $part->decoded->print(\*FH);
                   close(FH)
                       or die "ERROR: writing to $attachment: $!\n";
               }

               $part->delete;
          }

          $outbox->addMessage($m);
      }

      $mgr->closeAllFolders;





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру