Отправка писем в Debian
Имея в своем распоряжении машину с выходом в интернет и хостящимися на ней несколькими сайтами, задался вопросом отправки писем на внешку. Требовалось это много для чего, в основном для отправки писем с подтверждением регистраций и т.п.. Проблема заключалась в том, что на этой машине не был настроен почтовый сервер.
Немного погуглив нашел статью по настройке отправки email-уведомлений от cron. Прочитав понял, что отправка писем на e-mail в Debian делается за какую-то минуту. На момент написания статьи это был Debian Lenny.
Для начала убедимся, что утилиту sendmail заменяет exim4 из базовой поставки Debian:
$ stat /usr/sbin/sendmail File: `/usr/sbin/sendmail' -> `exim4'
Если у вас sendmail так же как и у меня является ссылкой на exim4, то все в порядке и можно начинать настройку последнего. По-умолчанию exim4 работает только с локальной почтой. Для того, что бы он отправлял письма и во внешку, необходима небольшая перенастройка. Делается это одной простой командой.
$ sudo dpkg-reconfigure exim4-config
После этого вам начнут задавать вопросы. Поэтапно на них отвечаем:
- Общий тип почтовой конфигурации указываем интернет-сайт; прием и отправка почты напрямую, используя SMTP
- В почтовое имя системы указываем имя вашего хоста. У меня это ugatu.net
- IP-адреса, с которых следует ожидать входящие соединения SMTP я указал 127.0.0.1 так как мне пока не требуется принимать почту. Требуется только отправлять.
- Другие места назначения, для которых должна приниматься почта я указал локальное имя хоста. Хотя, судя по описанию, оно и так добавляется к указываемому тут списку. Полагаю, можно оставить пустым.
- Домены, для которых доступна релейная передача почты я оставил пустым.
- Машины, для которых доступна релейная передача почты так же оставил пустым.
- Сокращать количество DNS-запросов до минимума имеет смысл ставить если у вас дорогой dial-up, который необходимо перезванивать для доступа к DNS-серверу. У меня выделенный канал, поэтому записывать DNS-запросы в журнал смысла нет. Отвечаем отрицательно.
- Метод доставки локальной почты можно указать любой. Но в Debian есть множество утилит, настроенных на работу с mbox для доставки локальной почты. Оставим как есть mbox формат в /var/mail/
- Разделить конфигурацию на маленькие файлы тоже не имеет смысла включать, если вы не собираетесь заниматься тонкой настройкой exim4. Последуем совету Debian и ответим отрицательно.
Вот собственно и все настройки. После вышеописанной процедуры отправка почты заработала на «Ура».
Хочу добавить, что это лишь поверхностная настройка exim4 для отправки писем в качестве утилиты sendmail. Довольно часто на серверах встречается уже готовая почтовая система как с отправкой, так и с получением почты. Если вам необходимо полностью настроить почтовый сервер для работы с электронной корреспонденцией, то советую почитать соответствующие статьи.

спасибо, очень полезно!
хмэ… вот нужна ли мне отправка почты — х/з…
если только торрентокачалку научить отправлять мессаги по факту закачки какого-либо торрента…
Не нужна — не пользуйся. Порой необходимо, например, чтобы крон отправлял уведомления на e-mail или вебсервер.
А куда можно посылать почту с этого почтаря?
хочу в локалке поднять, чтобы между собой пересылать, наружу, а так же получать снаружи
Посылать почту можно хоть куда. Работает как тот же sendmail. Проблема в том, одобрят ли такое письмо на других почтовых серверах. У меня такие письма автоматом в спам попадают на gmail. Чтобы получать письма, нужно будет поднять полноценный почтовый сервер.
Благодарю! Очень полезно! Два дня возился с exim, разобрался в пять минут!
а я вот не могу никак настроиться на отпрпавку с использованием акаунта от мейл ру может кто поможет ссылочкой на материал
Вариантов отсылки писем через «внешние» smtp-сервера в сети море. Один из них это, например, настроить SMTP relay в sendmail.
Спасибо!
Настроил отправку почты через Exim, привязав его к Google-аккунту. Сразу скажу, что DNS настроены именно на Google (типа корпоративная почта и все дела).
Все бы хорошо, НО: Google, с…обака, переписывает заголовки From, Return-Path и т.п. на оригинальный адрес отправителя.
Ни переписывание хеадеров при отправке письма, ни даже параметр “-f{$from}” не помогают.
При этом Exim обрабатывает всё правильно:
2011-02-02 10:24:02 1PkX4M-0001Nk-FJ to@domain.ru R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [209.85.225.109] X=TLS1…
2011-02-02 10:24:03 1PkX4M-0001Nk-FJ Completed
Но почта на ящик приходит не от from@bk.ru, а от того ящика gmail, на который настроен Exim (типа vasya.pupkin@gmail.com).
Даже не знаю, как с этим бороться. Кто что может посоветовать?