Вход/Регистрация
Язык программирования Perl
вернуться

Шохирев Михаил Васильевич

Шрифт:

use Net::SMTP; # используем класс для отправки e-mail

my $mail_server = 'shokhirev.com'; # почтовый сервер

my $to_user = 'mikhail@shokhirev.com'; # получатель

my $from_user = 'mshock@shadrinsk.net'; # отправитель

$smtp = Net::SMTP->new(Host=>$mail_server);# соединяюсь

$smtp->mail($from_user); # пишу

$smtp->to($to_user); # получателю

$smtp->data; # письмо

$smtp->datasend("To: $to_user\n"); #

$smtp->datasend("Subject: Lectures on Perl 5\n");

$smtp->datasend("\n");

$smtp->datasend("Сообщаем о публикации на intuit.ru\n");

$smtp->datasend("курса лекций по Perl 5\n");

$smtp->dataend; # заканчиваю

$smtp->quit; # отсоединяюсь

Если нужно в программе проверить почтовый ящик на сервере, то с помощью класса Net::POP3 не составит труда написать короткую программу, принимающую электронную почту. Например, такую:

use Net::POP3; # используем класс для получения e-mail

my $mail_server = 'shadrinsk.net'; # почтовый сервер

my $user = 'mshock'; # почтовый ящик

my $password = 'secret'; # пароль

$pop = Net::POP3->new($mail_server); # подключаюсь

if ($pop->login($user, $password) > 0) {# регистрируюсь

my $numbers = $pop->list; # получаю номера писем

foreach my $numbers (keys %$numbers) {# по номеру

my $message = $pop->get($numbers); # получаю письмо

print @$message; # печатаю его

$pop->delete($numbers); # удаляю с сервера

}

}

$pop->quit; # отсоединяюсь

На серверах CPAN есть множество программ для работы с электронной почтой, включая серверы. На Perl написана свободно распространяемая почтовая система с web-интерфейсом Open WebMail (openwebmail.org). На нем же написана и одна из самых известных и эффективных серверных систем фильтрации спама - SpamAssassin.

Системы мгновенного обмена сообщениями (instant messaging), иногда также называемые Интернет-пейджерами, получили огромное распространение: миллионы людей ежедневно общаются с помощью ICQ, Jabber, AOL Instant Messenger или Yahoo!Messenger. В архивах на сайте CPAN можно найти Perl-модули для работы со всеми этими системами. Хотя этот обмен сообщениями ориентирован на взаимодействие людей, его можно использовать для программного извещения пользователя о каком-либо событии. Для примера напишем программу, отправляющую сообщение с использованием открытого протокола мгновенного обмена сообщениями XMPP/Jabber (дополнительный модуль Net::Jabber нужно установить из архива CPAN). В примере после соединения с Jabber-сервером отправляется сообщение пользователю, а после получения от него ответа работа завершается:

use Net::Jabber; # подключаем класс работы с Jabber

use utf8; # в Jabber используется UTF-8

my $server = 'jabber.shadrinsk-city.ru'; # сервер

my $port = 5222; # порт

my $username = 'perl'; # отправитель

my $password = 'password'; # его пароль

my $resource = 'jud'; # ресурс

my $to_user = 'mshock@jabber.ru'; # получатель

my $client = new Net::Jabber::Client; # создаем клиента

$client->SetCallBacks( # указываем обработчики событий:

onconnect => \&on_connect, # при подключении

onauth => \&on_auth, # при регистрации

message => \&on_message, # при получении сообщения

);

$client->Execute( # соединяемся с сервером

hostname=>$server, port=>$port,

username=>$username, password=>$password,

resource=>$resource, register=>1,

connectsleep=>0, connectattempts=>1,

);

# завершение программы произойдет в on_message

sub on_connect { # выполнится при подключении к серверу

print "Подключен к $server:$port\n";

}

sub on_auth { # выполнится при регистрации на сервере

print "Зарегистрирован как $username\n";

  • Читать дальше
  • 1
  • ...
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: