Сборщик почты с емейлов [perl]

Discussion in 'PHP' started by Kaimi, 26 May 2008.

  1. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Видел несколько тем, где люди хотели получить копию писем с разных почтовиков, не используя thebat, outlook и тп.

    Для работы необходим ActivePerl и модуль MIME::Base64 из репозитория.
    В папке со скриптом необходимо создать файл emails.txt с списком в таком виде:

    [email protected];password;pop.server.ru

    Скачать:
    http://stream.ifolder.ru/6716917
     
    _________________________
    3 people like this.
  2. emik

    emik Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    57
    Likes Received:
    18
    Reputations:
    2
    а что это за модуль MIME::Base64 ?
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm
     
    _________________________
    1 person likes this.
  4. >.:!FrE!:.<

    >.:!FrE!:.< Elder - Старейшина

    Joined:
    19 Jul 2008
    Messages:
    0
    Likes Received:
    28
    Reputations:
    0
    Что не совсем понял!
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Багов конечно многовато, но все равно спасибо

    Из найденного:
    1) Проблемы с кодировками (не понимает iso кодировки) ошибка: "Unknown encoding 'iso-8859-1)' at c:\Perl\bin\login.pl line 33" Лишняя скобка в общем
    2) Проблема с UTF кодировкой: "Unknown encoding 'UTF-8; format=flowed' at c:\Perl\bin\login.pl line 32"
    3) Если в письме есть изображения - то вместо письма только изображение остается

    З.Ы. ну и просьба - можно как нибудь реализовать - чтобы письма не помечались прочитанными? (aka вконце не посылалось QUIT сообщение, а просто разрыв связи)

    Хех, сам нашел решения:
    Code:
    31 строчка: 		if($data =~ /charset=(.*)/) {$enc = $1; if($enc =~ /(.*[COLOR=Blue]?[/COLOR]);/){$enc = $1;} $enc =~ s/"//ig;}
    33 строчка: 		else {[COLOR=Blue]if ($enc =~ /(.*)\)/) {$enc=$1;}[/COLOR] print FILE decode($enc,$data); }
    Если не хотите, чтобы письма помечались прочитанными:
    Code:
    38 строчка: [COLOR=Blue]$pop->close;[/COLOR]
    
     
    _________________________
    #5 Gifts, 3 Aug 2008
    Last edited: 3 Aug 2008