Скрипт отправки e-mail (perl)

Версия для печатиОтправить другуPDF version

 

Вот понадобилось отправлять уведомление на мыло. Хотел сначала написать на shell, но потом обнаружил интересный модуль perl - p5-Net-SMTP-Server.

В портах его можно найти здесь: /usr/ports/mail/p5-Net-SMTP-Server.

 

Листинг скрипта

#!/usr/bin/perl
use Net::SMTP;
    $smtp = Net::SMTP->new('localhost'); # Вместо localhost - вписываем адресс smtp-сервера
    $smtp->mail('user [at] domain [dot] com'); # Адресс, на которое вернется письмо в случае неудачи доставки
    $smtp->to('recipient [at] domain [dot] com'); # Получатель
    $smtp->data();
    $smtp->datasend("To: recipient\@domain.com\n"); 
    $smtp->datasend("From: user\@domain.com\n");
    $smtp->datasend("Subject: Done!\n"); # Тема письма
    $smtp->datasend("\n");
    $smtp->datasend("Update Ok!\n"); # Тело письма.
    $smtp->dataend();
    $smtp->quit;

 

 

 

Вот пример полной SMTP-сессии. Так, на всякий случай:

# telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
HELO USC-ISIF.ARPA
250 BBN-UNIX.ARPA
MAIL FROM: Smith [at] USC-ISIF [dot] ARPA
250 OK
RCPT TO: Jones [at] BBN-UNIX [dot] ARPA
250 OK
RCPT TO: Green [at] BBN-UNIX [dot] ARPA
550 No such user here
RCPT TO: Brown [at] BBN-UNIX [dot] ARPA
250 OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
To: Jones [at] BBN-UNIX [dot] ARPA
From: Smith [at] USC-ISIF [dot] ARPA
Subject: Test

Hi!
This is a test message.
.

250 OK
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

 

Ваша оценка: Нет Средняя: 5 (2 голоса)

Вставай, Україно!

Литература

Тяжёлое детство: восьмибитные игрушки.