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

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

Реклама

Perl для IP-Телефонии (25 – SMTP, часть 17)

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

Программа почтового автоответчика.

Модуль Mail::Internet позволяет легко написать простую программу для автоматической отправки ответов на полученную электронную почту. Сценарий autoreply.pl, приведенный ниже, аналогичен программе vacation системы UNIX и им может с легкостью воспользоваться любая дизайн-студия или компания другого профиля. При получении почты он проверяет наличие в домашнем каталоге файла .vacation. Если этот файл существует, сценарий подготавливает ответ отправителю с использованием содержимого этого файла. В ином случае программа не выполняет никаких действий.

В сценарии автоответчика используется одно из средств почтовой системы UNIS которое позволяет направлять входящее сообщение электронной почты по каналам программы. При условии, что пользователь применяет такую систему, он может активизировать сценарий, создав в своем домашнем каталоге файл .forward, который содержит, например, следующие строки:

lstein
| /usr/local/bin/autоrерlу.рl

Укажите в первой строке свое регистрационное имя, а во второй — путь к сценарию автоответчика. Этот файл сообщает почтовой подсистеме, чтобы она одну опцию входящего почтового сообщения поместила в собственный ящик пользовать для входящей почты, а другую отправила на стандартное устройство ввода сценария autoreply.pl.

Ниже подробно описан сценарий autoreply.pl.

#!/usг/local/bin/per1 -w
# Файл: autoreply.pl
use strict;
use Mail::Internet;
use constant HOME => (getpwuid($<))[7];
use constant USER  =>    (getpwuid($<))[0];
use constant MSGFILE =>    HOME . "/.vacation";
use constant SIGFILE =>    HOME . "/.signature";
exit 0 unless -e MSGFILE;
exit 0 unless my $msg - Mail::Internet->new(*STDIN);
my $header = $msg->head;
# He отвечать, если сообщение не направлено пользователю
my $myname USER;
exit 0 unless $header->get('To') =~ /$myname/;
# He отвечать, если сообщение отмечено как "Bulk"
exit 0 if $header->get('Precedencef) /bulk/i;
# He отвечать, если строка From содержит слова Daemon,
# Postmaster, Root или адрес самого пользователя
exit 0 if $header->get('From1')
=~ /subsystem|daemon|postmaster|root|$myname/i;
# He отвечать, если строка Subject содержит
# слова "returned mail"
exit 0;if $header->get('Subject')
=~ /(returned|bounced) mail/i;
# Все хорошо; теперь можно подготовить ответ
my $reply = $msg->reply;
# Открыть файл сообщения для составления ответа
open (V,MSGFILE) or die "Can’t open message file: $!";
# Добавить строки ответного сообщения
my $body =$reply->body;
unshift (@$body,<V>,"n");
# Присоединить подпись
$reply->add signature(SIGFILE);
# Отправить почту
$reply->send or die;


2013-12-24 14:00:09

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


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


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


РЕКОМЕНДУЕМ

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