Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (27 – Обработка почты, часть 2)

предыдущая часть ««»» следующая часть

Итак рассмотрим программу получения сводных данных о содержимом почтового ящика по протоколу POP3.

0:    #!/usr/local/bin/perl -w
1:    # Файл: pop_stats.pl
2:    use strict;
3:    use Net::POP3 ;
4:    use Mail::Header;
5:    use PromptUtil;
6:    my ($user,$host) = split(/@/,shift,2);
7:    ($user && $host) or die "Usage: pop_stats.pl username mailbox.hostn";
8:    my $passwd = get_passwd($user,$host) || exit 0;
9:    my $pop = Net::P0P3->new($host,Timeout=>30) or die "Can’t connect to $host: $!n";
10:    my $messages = $pop->login($user=>$passwd) or die "Can’t log in: ",$pop->message,"n";
11:    my $last = $pop->last;
12 .    $message += 0; .
13:    print "inbox has messages (", $messages-$last, " new)n";
14:    for my $msgnum ($last+l .. $messages) {
15:    my $header    =    $pop->top ($msgnum) ;
16:    my $parsedhead    =    Mail::Header->new($header);
17:    chomp (my $subject   =    $parsedhead->get ("Subject")) ;
18:    chomp (my $from    =    $parsedhead->get("From"));
19:    $from = clean from($from);
20:    printf "%4d %-25s %-50sn",$msgnum,$from,$subject;
21:    }
22:    $pop->quit;
23:      sub clean_from {
24:    local $_ = shift;
25    /^"( [^"]+)" /    &&    return    $1;
26:    /^([^]+) /    &&    return    $1;
27:    /^S+ (([^)]+))/    &&    return    $1;
2 8:    return $_;
29:      }

Проведем анализ программы.

Строки 1-6. Загрузка модулей. Вызывается модуль Net::POP3 для доступа к удаленному POP-серверу и модуль Mail::Header для интерпретации полученных заголовков писем. Вы­зывается также новый вспомогательный модуль PromptUtil, кото­рый предоставляет функцию get_passwd(), наряду с другими функциями вывода приглаше­ния для пользователя.

Строки 6-8. Получение имени пользователя, имени хоста и пароля. Имена пользователя и хоста берутся из командной строки, и с помощью функции get_passwd () выдается пригла­шение пользователю ввести пароль. Эта функция отключает эхо-повтор терминала, чтобы па­роль не отображался на экране.

Строка 9. Подключение к хосту почтового ящика. Вызывается метод new() модуля Net::POP3 для подключения к указанному хосту с предоставлением серверу 30 секунд, в те­чение которых он должен ответить приветственным сообщением. Конструктор new() возвра­щает объект Net::POP3.

Строки 10-13. Регистрация и подсчет сообщений. Вызывается метод login() объекта POP3 для регистрации с именем пользователя и паролем.



2014-01-31 18:20:04

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония