Работа с почтовыми ящиками на PHP и Perl
Приветы.
Как с помощью PHP или Perl извлеч из почтового ящика письмо, а из письма извлеч файл
Как с помощью PHP или Perl извлеч из почтового ящика письмо, а из письма извлеч файл
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Посмотри http://perl.overmeer.net/mailbox/
2B OR NOT(2B) = FF
Использую:
use Mail::POP3Client;
use Mail::POP3Client;
UUU
Имееш ввиду Perl?
Ща попробую установить этот модуль.
И можно по подробнее о нем? О его функциях?
Какая команда нужна чтобы из письма извлеч файл?
Еще вопросик по Perl:
Кода я указываю путь к файлу:
http://localhost/cgi-bin/myscript.cgi
то он запускается нормально.
Но кода я хочу просмотреть содержимое папки cgi-bin:
http://localhost/cgi-bin/
мне говорят:
"You are not authorized to view this page"
Как енто исправить?
Также мне пишут кода я пытаюсь запустить любой файл с расширением pl:
http://localhost/cgi-bin/myscript.cgi]h ... Lcsript.pl
Имееш ввиду Perl?
Ща попробую установить этот модуль.
И можно по подробнее о нем? О его функциях?
Какая команда нужна чтобы из письма извлеч файл?
Еще вопросик по Perl:
Кода я указываю путь к файлу:
http://localhost/cgi-bin/myscript.cgi
то он запускается нормально.
Но кода я хочу просмотреть содержимое папки cgi-bin:
http://localhost/cgi-bin/
мне говорят:
"You are not authorized to view this page"
Как енто исправить?
Также мне пишут кода я пытаюсь запустить любой файл с расширением pl:
http://localhost/cgi-bin/myscript.cgi]h ... Lcsript.pl
Это не исправляемо.Но кода я хочу просмотреть содержимое папки cgi-bin:
http://localhost/cgi-bin/
мне говорят:
"You are not authorized to view this page"
Как енто исправить?
Лучше использовать модули из серии Email. Небольшой пример, думаю все понятно.
Код: Выделить всё
#!/usr/bin/perl
use strict;
use Email::Folder;
use Email::FolderType::Net;
use Email::MIME;
use Email::MIME::Attachment::Stripper;
my $data_from_file;
my $login = 'xxxx';
my $pswd = 'xxxx';
my $popserver = 'pop.xxxxx.ru';
my $folder = Email::Folder->new("pop://$login:$pswd\@$popserver:110/");
while (my $email = $folder->next_message) {
my $stripper = Email::MIME::Attachment::Stripper->new(Email::MIME->new($email->as_string));
# my Email::MIME $msg = $stripper->message;
# $msg->header('From')
# $msg->header('Subject')
my @attachments = $stripper->attachments;
foreach my $hash (@attachments) {
# $hash->{'filename'}
# $hash->{'content_type'}
$data_from_file = $hash->{'payload'};
}
}
chur
Так теперь спрошу и тебя о подробностях:
strict, Email::Folder, Email::FolderType::Net, Email::MIME, Email::MIME::Attachment::Stripper - это модули которые я сам должен установить?
У меня SMTP server это "mail.vtb.kz" и
Mail Server "mail.vtb.kz".
Где в твоем коде нужна указывать эти переменные?
Так теперь спрошу и тебя о подробностях:
strict, Email::Folder, Email::FolderType::Net, Email::MIME, Email::MIME::Attachment::Stripper - это модули которые я сам должен установить?
У меня SMTP server это "mail.vtb.kz" и
Mail Server "mail.vtb.kz".
Где в твоем коде нужна указывать эти переменные?
Да, все модули Email::* надо установить. strict - это родное.
Переменная $popserver должна содержать имя pop-сервера (я так понял, ты называешь это Mail Server). SMTP сервер тут не нужен.
Переменная $popserver должна содержать имя pop-сервера (я так понял, ты называешь это Mail Server). SMTP сервер тут не нужен.
Я установил:
strict-ModuleName
Email-FolderType-0.7
Email-FolderType-Net-1.02
А эти два модуля:
Email-MIME-1.8
Email-MIME-Attachment-Stripper-1.3
не установились - ругается :
Can't call method "ok" on an undefined value at C:/usr/site/lib/PPM/UI.pm
....
Какято беда с этим файликом UI.pm
Знаком с такой проблемой?
Вообще не подскажеш пакет в котором были бы все модули EMAIL чтобы все сразу установить?
strict-ModuleName
Email-FolderType-0.7
Email-FolderType-Net-1.02
А эти два модуля:
Email-MIME-1.8
Email-MIME-Attachment-Stripper-1.3
не установились - ругается :
Can't call method "ok" on an undefined value at C:/usr/site/lib/PPM/UI.pm
....
Какято беда с этим файликом UI.pm
Знаком с такой проблемой?
Вообще не подскажеш пакет в котором были бы все модули EMAIL чтобы все сразу установить?
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
А как насчёт положить в директорию .htaccess с разрещением для просмотра? (типа Allow from all, +Indexes, или что-то в этом роде, не помню точно) Я не думаю, что это так уж неисправляемо, хотя с cgi мало знаком. Другое дело, нужно ли это.chur писал(а):Это не исправляемо.Но кода я хочу просмотреть содержимое папки cgi-bin:
http://localhost/cgi-bin/
мне говорят:
"You are not authorized to view this page"
Как енто исправить?
To Oscar
Мне представляется, что если папка /cgi-bin/ прописана директивой ScriptAlias (и скорее всего это так), то добиться индексирования этой папки не получиться (последующие директивы в этом направлении Apache будет игнорировать). Хотя, не проверял.
To Bolat
С ppm такая фигня. Эти модули, почему-то, через ppm не распространяются
.
Попробуй устанавливать модули через CPAN. Для этого из командной строки запускаешь:
perl -MCPAN -e shell
Далее последует небольшой интерактивный установочный процесс. Когда он закончится, появится приглашение к работе:
cpan>_
Для установки модуля пишешь: install Email::MIME
Мне представляется, что если папка /cgi-bin/ прописана директивой ScriptAlias (и скорее всего это так), то добиться индексирования этой папки не получиться (последующие директивы в этом направлении Apache будет игнорировать). Хотя, не проверял.
To Bolat
С ppm такая фигня. Эти модули, почему-то, через ppm не распространяются

Попробуй устанавливать модули через CPAN. Для этого из командной строки запускаешь:
perl -MCPAN -e shell
Далее последует небольшой интерактивный установочный процесс. Когда он закончится, появится приглашение к работе:
cpan>_
Для установки модуля пишешь: install Email::MIME