MyTetra Share
Делитесь знаниями!
ssmtp - отправляем логи на почту
Время создания: 14.01.2011 14:24
Раздел: Компьютер - Linux - Сеть в Linux - ssmtp (e-mail сервер)
Запись: xintrea/mytetra_syncro/master/base/0000003387/text.html на raw.github.com

Потребовалась отправка логов на нужный е-майл. Раскуривал штатный Sendmail, но выходило довольно монструозно (+ мне нужно было менять заголовки отправителя). Ставить Exim для этой мелочи тоже не хотелось. Посему остановился на утилите ssmtp. Она элементарна и проста в эксплуатации.

Установка

# cd /usr/ports/

# make search name=ssmtp

Port: ssmtp-2.62.3

Path: /usr/ports/mail/ssmtp

Info: Extremely simple MTA to get mail off the system to a mail hub

Maint: aragon@phat.za.net

B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1_1

R-deps:

WWW: _http://packages.debian.org/stable/mail/ssmtp

# cd /usr/ports/mail/ssmtp; make install clean

~~

===> SECURITY REPORT:

This port has installed the following binaries which execute with

increased privileges.

/usr/local/sbin/ssmtp

If there are vulnerabilities in these programs there may be a security

risk to the system. FreeBSD makes no guarantee about the security of

ports included in the Ports Collection. Please type 'make deinstall'

to deinstall the port if this is a concern.

For more information, and contact details about the security

status of this software, see the following webpage:

_http://packages.debian.org/stable/mail/ssmtp

===> Cleaning for gmake-3.81_3

===> Cleaning for ssmtp-2.62.3

Создадим и настроим конфигурационные файлы:

# cd /usr/local/etc/ssmtp/

# ll

total 4

-rw-r----- 1 root ssmtp 200 Apr 22 11:53 revaliases.sample

-rw-r----- 1 root ssmtp 1286 Apr 22 11:53 ssmtp.conf.sample

# cp ssmtp.conf.sample ssmtp.conf

# cp revaliases.sample revaliases

Настроим ssmtp.conf

Переведем основной конфигурационный файл:

# cat ssmtp.conf

# /etc/ssmtp.conf -- конфигурационный файл для sSMTP sendmail.

#

# Пользователь, который получает всю почту для userids < 1000

# Сделайте пустым для отключения перезаписи. Или укажите пользователя.

# А также вы можете указать нужный е-майл на который будет

# приходить почта для root.

root=postmaster

# Место, где идет почта. Настоящее имя машины не требуются

# MX записи. Обычно mailhosts является именем mail.domain.com

# Например если вы находитесь в domain.com ваш mailhub с таким же именем.

mailhub=mail

# Пример для SMTP портом 2525

# mailhub=mail.your.domain:2525

# Пример для SMTP портом 25 (Standard/RFC)

# mailhub=mail.your.domain

# Пример для SSL шифрованного соединения

# mailhub=mail.your.domain:465

# От кого якобы должна приходить почта?

rewriteDomain=

# Полное имя машины

hostname=_HOSTNAME_

# Установите это чтобы никогда не переписывать "From:" (если не указано) и

# использовать этот адрес в "from line" оболочки.

#FromLineOverride=YES

# Использовать SSL/TLS, чтобы отправить безопасные сообщения на сервер.

#UseTLS=YES

# Использовать SSL/TLS сертификат для аутентификации на SMTP-хосте.

#UseTLSCert=YES

# Используйте этот сертификат RSA.

#TLSCert=/usr/local/etc/ssmtp/ssmtp.pem

# Получить расширенное (* действительно * расширенную) отладочную информацию в логах

# Если вы хотите иметь отладке в конфигурационных отпарсенных файлах, переместите этот

# параметр в начало файла конфигурации и раскомментируйте

#Debug=YES

Мой тестовый конфигурационный файл:

# grep -v '^#' ssmtp.conf |grep -v ^\$

root=Raven2000@lissyara.su

mailhub=mail.ignix.ru

hostname=raven.local

Настроим revaliases

Revaliases нужен для создания псевдонимов (например как файл /etc/mail/aliases для sendmail).

Переведем конфигурационный файл:

# cat revaliases

# sSMTP псевдонимы

#

# Формат: local_account:outgoing_address:mailhub

#

# Пример: root:your_login@your.domain:mailhub.your.domain[:port]

# где [:port] – это дополнительный номер порта, который по умолчанию 25.

Настроим соответствующим образом:

# grep -v '^#' revaliases |grep -v ^\$

root:root@raven.local:mail.ignix.ru

Система

Остановите Sendmail и приведите конфигурационные файлы к этому виду:

# cat /etc/rc.conf |grep sendmail

sendmail_enable="NONE"

# grep -v ^# /etc/mail/mailer.conf |grep -v ^\$

sendmail /usr/local/sbin/ssmtp

send-mail /usr/local/sbin/ssmtp

mailq /usr/local/sbin/ssmtp

newaliases /usr/local/sbin/ssmtp

hoststat /usr/local/sbin/ssmtp

purgestat /usr/local/sbin/ssmtp

Тестируем

Отправим письмо руту:

# mail root

Subject: test ssmtp

test ssmtp

.

EOT

Готово. Если письмо пришло то вас можно поздравить.

Проблемы

А если не пришло то это проблема =).

Для начала нам нужно обнаружить проблемное место. Для этого в конфигурационном файле ssmtp.conf Добавляем в самое начало конфига строчку:

Debug=YES

Далее необходимо смотреть как и куда отправляются письма. Для этого необходимо видеть логи почтового сервера в реальном времени (для удобства). И пробуем отправить письмо заодно смотря логи.

# tail -f /var/log/maillog

Apr 23 11:38:43 bsd sSMTP[72138]: Sent mail for root@raven.local (221 Bye) uid=0

username=root outbytes=296

Apr 23 11:38:51 bsd sSMTP[72143]: Set Root="Raven2000@lissyara.su"

Apr 23 11:38:51 bsd sSMTP[72143]: Set MailHub="mail.ignix.ru"

Apr 23 11:38:51 bsd sSMTP[72143]: Set RemotePort="25"

Apr 23 11:38:51 bsd sSMTP[72143]: Set HostName="raven.local"

Apr 23 11:38:51 bsd sSMTP[72143]: Set MailHub="mail.ignix.ru"

Apr 23 11:38:51 bsd sSMTP[72143]: via SMTP Port Number="25"

Apr 23 11:38:51 bsd sSMTP[72143]: 220 MailServer 2005

Apr 23 11:38:51 bsd sSMTP[72143]: HELO raven.local

Apr 23 11:38:52 bsd sSMTP[72143]: 250 ignix.ru

Apr 23 11:38:52 bsd sSMTP[72143]: MAIL FROM:<root@raven.local>

Apr 23 11:38:52 bsd sSMTP[72143]: 250 Ok

Apr 23 11:38:52 bsd sSMTP[72143]: RCPT TO:<Raven2000@lissyara.su>

Apr 23 11:38:52 bsd sSMTP[72143]: 250 Ok

Apr 23 11:38:52 bsd sSMTP[72143]: DATA

Apr 23 11:38:52 bsd sSMTP[72143]: 354 End data with <CR><LF>.<CR><LF>

Apr 23 11:38:52 bsd sSMTP[72143]: Received: by raven.local (sSMTP sendmail emulation);

Fri, 23 Apr 2010 11:38:51 +0400

Apr 23 11:38:52 bsd sSMTP[72143]: From: "Charlie &" <root@raven.local>

Apr 23 11:38:52 bsd sSMTP[72143]: Date: Fri, 23 Apr 2010 11:38:51 +0400

Apr 23 11:38:52 bsd sSMTP[72143]: To: Raven2000@lissyara.su

Apr 23 11:38:52 bsd sSMTP[72143]: Subject: test ssmtp2

Apr 23 11:38:52 bsd sSMTP[72143]:

Apr 23 11:38:52 bsd sSMTP[72143]: test ssmtp2

Apr 23 11:38:53 bsd sSMTP[72143]: .

Apr 23 11:38:53 bsd sSMTP[72143]: 250 Ok: queued as 50A392BC12D

Apr 23 11:38:53 bsd sSMTP[72143]: QUIT

Apr 23 11:38:53 bsd sSMTP[72143]: 221 Bye

Apr 23 11:38:53 bsd sSMTP[72143]: Sent mail for root@raven.local (221 Bye) uid=0

username=root outbytes=331

Как видим все в порядке это можно проследить по записям. У вас же могут быть несоответствия в работе которые вы заметите и устраните.

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования