Страница 1 из 2
Работа с почтовыми ящиками на PHP и Perl
Добавлено: 06 апр 2005, 14:00
Bolat
Приветы.
Как с помощью PHP или Perl извлеч из почтового ящика письмо, а из письма извлеч файл
Добавлено: 06 апр 2005, 14:09
Absurd
Добавлено: 06 апр 2005, 14:43
UUU
Использую:
use Mail::POP3Client;
Добавлено: 07 апр 2005, 06:51
Bolat
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
Добавлено: 07 апр 2005, 11:34
chur
Но кода я хочу просмотреть содержимое папки 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'};
}
}
Добавлено: 07 апр 2005, 12:27
Bolat
chur
Так теперь спрошу и тебя о подробностях:
strict, Email::Folder, Email::FolderType::Net, Email::MIME, Email::MIME::Attachment::Stripper - это модули которые я сам должен установить?
У меня SMTP server это "mail.vtb.kz" и
Mail Server "mail.vtb.kz".
Где в твоем коде нужна указывать эти переменные?
Добавлено: 07 апр 2005, 13:23
chur
Да, все модули Email::* надо установить. strict - это родное.
Переменная $popserver должна содержать имя pop-сервера (я так понял, ты называешь это Mail Server). SMTP сервер тут не нужен.
Добавлено: 07 апр 2005, 13:26
Bolat
Я установил:
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 чтобы все сразу установить?
Добавлено: 07 апр 2005, 14:23
Oscar
chur писал(а):Но кода я хочу просмотреть содержимое папки cgi-bin:
http://localhost/cgi-bin/
мне говорят:
"You are not authorized to view this page"
Как енто исправить?
Это не исправляемо.
А как насчёт положить в директорию .htaccess с разрещением для просмотра? (типа Allow from all, +Indexes, или что-то в этом роде, не помню точно) Я не думаю, что это так уж неисправляемо, хотя с cgi мало знаком. Другое дело, нужно ли это.
Добавлено: 07 апр 2005, 15:07
chur
To
Oscar
Мне представляется, что если папка /cgi-bin/ прописана директивой ScriptAlias (и скорее всего это так), то добиться индексирования этой папки не получиться (последующие директивы в этом направлении Apache будет игнорировать). Хотя, не проверял.
To
Bolat
С ppm такая фигня. Эти модули, почему-то, через ppm не распространяются

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