Скрипт отправки e-mail (perl)
user warning: Duplicate entry '29979473' for key 'PRIMARY'
query: INSERT INTO accesslog (title, path, url, hostname, uid, sid, timer, timestamp) values('SquirrelMail - хранение настроек и адресной книги пользователя в БД MySQL', 'node/103', '', '216.73.216.220', 0, '6q9ifre737oh0igcslhjk3lse3', 133, 1764780730) in /usr/local/www/muff.kiev.ua/modules/statistics/statistics.module on line 63.
Опубликовано muff в Вс, 2009-09-27 02:51



Вот понадобилось отправлять уведомление на мыло. Хотел сначала написать на 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.
|
Последние комментарии
1 год 19 недель назад
1 год 43 недели назад
3 года 44 недели назад
4 года 14 недель назад
4 года 37 недель назад
5 лет 2 дня назад
5 лет 5 дней назад
5 лет 4 недели назад
5 лет 15 недель назад
5 лет 19 недель назад