Perl для системного администрирования



              

Отправка почты


Начнем с рассмотрения механизмов отправки почты, а затем перейдем к более сложным вопросам. Традиционный (для Unix) Perl-код для

отправки почты бывает похож на пример, включенный в список часто задаваемых вопросов:

#

считаем, что ser.dmail установлен

open(SENDMAIL. "|/usr/lib/sendmail -oi -t -oaq") or

die "Невозможно запустить процесс для sendTiaii:

$!\n"; print SENDMAIL «"EOF"; From: от кого <me\$host> To:

кому <you\@othernost> Subject: Тема сообщения

Тело сообщения следует после пустой строки и может состоять из любого

количества строк.

EOF

close(SENDMAIL) or warn "Невозможно закрыть sendmail ";

Когда в Perl 5 изменились правила интерполяции массивов (по сравнению с Perl 4), очень много сценариев, отправляющих почту, перестали работать. Даже сейчас будьте осторожны и следите за таким кодом:

Saddress = "fred@example.com";

Чтобы все работало верно, его надо заменить на одну из следующих строк:

$address="fred\@example.com";

$address='fred@example.com1;

$address= join('@', 'fred', 'example.com');

Код, вызывающий sendmail, как было в нашем примере, во многих случаях будет работать отлично, но если в операционной системе не установлен агент передачи почты с именем «sendmail» (например, в NT или MacOS), он не будет работать никогда. В таких операционных системах выбор действий невелик.

Получение sendmail (или иного агента передачи почты)

Если вы работаете на Win32, то вам повезло, т. к. я знаю по крайней мере о трех версиях sendmail, перенесенных под Win32:

  • трех версиях sendmail, перенесенных под Win32:
  • Перенесенная версия sendmail от Cygwin (http://dome/weeg.ui-owa.edu/pub/domestic/sos/ports)
  • Коммерческая версия sendmail от Mercury Systems (http://www.de-mobuilder.com/sendmail.htm)
  • Коммерческая версия Sendmail for NT от Sendmail, Inc. (http:

    www.sendmail.com)

    Тем, кому нужно что-то менее тяжеловесное и кто хочет внести некоторые изменения в программу на Perl, чтобы поддержать различные аргументы командной строки, возможно, помогут достичь цели другие программы для Win32:




    Содержание    Вперед