ssmtp - маленький, но очень полезный почтальон...

Господа! Статья может быть интересна исключительно тем, кому на сервере необходим почтовый сервер, но по тем или иным причинам почтовик постаивть нельзя...
Если у вас такой проблемы нет или не знаете о чем идет речь, пожалуйста не морщите понапрасну свои мозги - нормальному здоровому человеку всё это не нужно! :)

Этот документ актуален на конец октября 2008 и с этого времени более не поддерживается.

Проблема: Сервер стоит дома, на кухне, подключен к ADSL каналу провайдера "Авангард". После того, как на сервере появился сайт на Drupal (http://nakuhne.net.ru/), а на сайте пользователи, встала необходимость отправлять пользователям сайта пароли и уведомления. Поднимать почтовый сервер - бесмысленно, т.к. 99% почтовых серверов все равно не примут почту с вот такого адреса "ppp91-122-191-252.pppoe.avangard-dsl.ru.", после того, как запросят обратную зону.

На помощь пришли "ssmtp" и gmail.com.

Идея в следующем:
1. Заводим на gmail.com эккаунт.
2. С эккаунта на gmail.com при помощи ssmtp отправляем почту.

Поехали.

Gmail.com имеет неоспоримое преимущество перед другими почтовиками: для приема почты они используют 587 порт, а не стандартный 25. Хотя, для кого-то это недостаток. Впрочем, все описанное ниже можно проделать и с любым другм почтовиком, например, mail.ru.

Заведите аккаунт на gmail.com. Например, "acc4mydrupal" с паролем "password".

Пропишите свежезаведенный адрес электронной почты в Drupal-е (на странице admin/settings/site-information ).

Усановка ssmtp вряд ли вызовет проблемы. На Gentoo Linux это делается так:

# USE="mailwrapper ssl -ipv6 -md5sum" emerge ssmtp

Или лучше так:

# echo "mail-mta/ssmtp mailwrapper ssl -ipv6 -md5sum" >> /etc/portage/package.use
# emerge ssmtp

Если вы собираете ssmtp из исходных кодов, собирайте с отключенными флагами "ipv6 и md5sum" и включенными "mailwrapper и ssl".

Настройка:
Правим /etc/ssmtp/ssmtp.conf:

root=acc4mydrupal@gmail.com
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=acc4mydrupal@gmail.com
AuthPass=password
FromLineOverride=YES

Правим /etc/ssmtp/revaliases:

root:acc4mydrupal@gmail.com:smtp.gmail.com:587

Вуаля!
Теперь вновь зарегистрировавшиеся пользователи будут получать по почте уведомление и новый пароль, а уже существующие смогут оформить подписку.

Какую нагрузку может выдержать эта этажерка?
Не знаю :) Однако, сейчас (7 янв 2008) сайт http://www.gentoo.ru/ по техническим причинам находится на зеркале: http://calculator.gentoo.ru/, где почта настроена именно таким способом. Работает, справляется :)


ssmtp и FreeBSD 6.0
Решение анонимного посетителя нашего сайта
В FreeBSD 6.0 всё ставится из портов. Чтобы заработало, создайте симлинк с /usr/local/sbin/ssmtp на /usr/sbin/sendmail.
Аватар пользователя Шуга

Привет! А можно

Привет! А можно сделать(ну или опционально), чтобы не отправлялся мыл с своим сообщением или комментарием?

Аватар пользователя Zyabr

Привет! Пока

Привет!
Пока никак. Можно отписаться от новостей и всё "новенькое" на сайте отслеживать здесь: http://nakuhne.net.ru/tracker

Аватар пользователя Шуга

Неее.. так не

Неее.. так не цикаво!:) Когда на мыло приходит - это лучше:)

Аватар пользователя Zyabr

Увы, придется

Увы, придется потерпеть. Времени никак не хватает сделать всё, что хочется. А хочется очень много всего. Когда-нибудь всё будет. Уволюсь с работы и разгребу потихоньку.
А пока... Пусть хотя бы так работает.

Аватар пользователя Шуга

На самом деле

На самом деле все здорово.

ЗЫ. Если нужна какая-то помощь - есть две руки и голова, возможно в нее даже можно забить что-нить из того языка, на котором написан движок:)

Аватар пользователя Zyabr

Спасибо.

Спасибо. Помощь, оно всегда хорошо. Возьмем на заметку :)

Для системных сообщений

Спасибо за статью, мне почта нужна была только для получений отчётов о системе- получилось :)
FreeBSD 6.0, ставиться из портов , но заработало нормально после создания симлинка с /usr/local/sbin/ssmtp на /usr/sbin/sendmail .

Аватар пользователя Zyabr

Здорово, что

Здорово, что пригодилось :)

P.S. В заметку внесу замечание о BSD.