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



              

Отправка почты - часть 2


  • blat (http://www.interlog.com/~tcharron/blat.html)
  • netmall95 (http://www.geocitles.com/SlliconValley/Lakes/2382/net mail.html)
  • wmailto (http://www.impaqcomp.com/jgaa/wmailto.html)
  • Преимущества такого подхода состоят в том, что можно выбросить из сценария все сложности отправки почты. Хороший агент передачи почты (МТА) пытается повторно соединиться с почтовым сервером, если тот в данный момент недоступен, выбирает нужный целевой сервер (ищет записи Mail eXchanger в DNS и осуществляет переходы между ними), при необходимости переписывает заголовки, справляется с внезапными коллизиями и т. д. Если можно избежать необходимости заботиться обо всем этом в Perl, то это просто замечательно.

    Использование IPC, специфичных для операционной системы

    В MacOS или Windows NT можно управлять почтовым клиентом, используя IPC (Interprocess Communication, межпроцессные взаимодействия).

    Я не знаю о существовании версий sendmail для MacOS, но в нем для управления почтовым клиентом можно применять AppleScript:

    $to="someone\@example.com"; $from="me\@example.com"; $subject="Hi there"; $body="message body\n";

    MacPerl: :DoAppleScnpt(«EOC); tell application "Eudora"

    make message at end of mailbox "out"

    -- 0 is the current message

    set field \"from\" of message 0 to \"$frorn\"

    set field \"to\" of message 0 to \"$to\"

    set field \"subject\" of message 0 to \"$subject\"

    set body of message 0 to \"$body\"

    queue message 0

    connect with sending without checking

    quit

    end tell EOC В этом примере запускается очень простая программа AppleScript, которая общается с почтовым клиентом Eudora. Сценарий создает новое сообщение, помещает его в очередь для отправки, а затем отдает инструкции почтовому клиенту об отправке сообщения из очереди перед выходом.

    Еще один, более эффективный способ написать подобный сценарий состоит в том, чтобы использовать модуль Мае: : G1 ие, уже рассмотренный в главе 2 «Файловые системы».




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