Отправка почты с авторизацией на SMTP

| Нет комментариев | Нет трекбэков

Думаю что время SMTP-серверов без авторизации "кануло в лету".
Во всяком случае на большинстве (если не на всех) публичных сервисах - точно. Отсюда вытекает необходимость работать с SMTP с поддержкой авторизации.
NB: Я предпочитаю работать с сетью по возможности через модули более низкого уровня, то есть принцип примерно такой:
- Если задача реализуема через Socket.pm, я использую его,
иначе: IO::Socket, иначе LWP.
- Если задача реализуема через модуль семейства Net::, я использую
соответствующий модуль. Хотя в большинстве своем модули Net:: - надстройка над модулем IO::Socket, для некоторых протоколов вполне оправданно их применение. Хотя есть некоторые специфичные задачи для которых необходимо использовать Net::RawIP, который имеет более низкий уровень чем даже Socket.pm.

Ну да вернемся к нашим "баранам". Из вышенаписанного вытекает, что для отправки почты в большинстве случаев вполне оправданно пользовться модулем Net::SMTP. Если необходимо работать со сложными MIME-типами, можно подключить модуль Mime::Lite, или один из семейства Mime::.
Но что делать когда возникает необходимость работать с SMTP-авторизацией?
Я использую модуль Net::SMTP_auth. Он поддерживает все методы модуля Net::SMTP, и добавляет ему еще один метод: auth. Фактически данный модуль является подклассом модуля Net::SMTP, и во многих случаях есть смысл использовать родной метод Net::SMTP auth, но Net::SMTP_auth  имеет несколько большие возможности, в частности поддерживает прозрачную работу с модулем Authen::NTLM, позволяющему проходить авторизацию по протоколу NTLM.

Пример работы с модулем:


    #!/usr/bin/perl -w

    use Net::SMTP_auth;

    $smtp = Net::SMTP_auth->new('mailhost');
    $smtp->auth('CRAM-MD5', 'user', 'password');

    $smtp->mail($ENV{USER});
    $smtp->to('postmaster');

    $smtp->data();
    $smtp->datasend("To: postmaster\n");
    $smtp->datasend("\n");
    $smtp->datasend("A simple test message\n");
    $smtp->dataend();

    $smtp->quit;

Нет трекбэков

URL для трекбэков: http://perlmonks.org.ru/cgi-bin/MT/engine/mt-tb.cgi/22

Комментировать

Об этой записи

Сообщение опубликовано 30.06.2009 11:10. Автор — Monks.

Предыдущая запись — Шаблоны с обратным вызовом. Reverse Callback Templating

Следующая запись — Многопоточная загрузка файлов на FTP

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Страницы


 


 

Page copy protected against web site content infringement by Copyscape