Простая, пошаговая инструкция. Как установить в системе Debian и настроить sendmail в роли SMTP relay сервера.
В примере использовались:

192.168.0.1 — как IP вашего сервера
smtp-server — имя сервера
smtp.external.net — внешний SMTP сервер

192.168.0.x — наша сеть

1. Начнем с установки самого sendmail. (команды выполняем от имени root)

aptitude install sendmail

2. Sendmail использует полный доменный суффикс, поэтому указываем его в hosts:

vim /etc/hosts

192.168.0.1           smtp-server.domain.net          smtp-server

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

3. Делаем маленький фикс sendmail.mc, иначе при компиляции в sendmail.cf получим ошибку:

Errors in generating sendmail.cf
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(local') must appear after FEATURE(always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(local') must appear after FEATURE(allmasquerade')*** ERROR: FEATURE() should be before MAILER()

Поэтому:

vim /etc/mail/sendmail.mc

Поднимаем строки:

dnl # Masquerading options
FEATURE(always_add_domain')dnl
MASQUERADE_AS(
smtp-server’)dnl
FEATURE(allmasquerade')dnl
FEATURE(
masquerade_envelope’)dnl

над:

dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(local')dnl
MAILER(
smtp’)dnl

получим:

dnl # Dialup/LAN connection overrides
dnl #
include(/etc/mail/m4/dialup.m4')dnl
include(
/etc/mail/m4/provider.m4′)dnl
dnl #
dnl # Masquerading options
FEATURE(always_add_domain')dnl
MASQUERADE_AS(
smtp-server’)dnl
FEATURE(allmasquerade')dnl
FEATURE(
masquerade_envelope’)dnl
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(local')dnl
MAILER(
smtp’)dnl

4. Добавляем в sendmail.mc наш внешний SMTP сервер

define(SMART_HOST',smtp.external.net’)dnl

запись нужно разместить выше раздела dnl # Default Mailer setup

5. Описываем в файле access кто сможет отправлять почту

Connect:localhost               RELAY
Connect:192.168.0           RELAY

6. Создаем хеш доступов

makemap hash /etc/mail/access.db < /etc/mail/access

7. Указываем IP адрес на каком будет висеть SMTP:

vim /etc/mail/sendmail.mc

Находим строку:

DAEMON_OPTIONS(Family=inet,  Name=MTA-v4, Port=smtp, Addr=localhost')dnl

и меняем адрес:

DAEMON_OPTIONS(Family=inet,  Name=MTA-v4, Port=smtp, Addr=192.168.0.1′)dnl

8. Компилируем sendmail.mc в sendmail.cf

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

9. Перезапускаем sendmail и SMTP relay сервер у нас готов!

/etc/init.d/sendmail restart

  • Vadim Kolosov

    А если нет внешнего smtp сервера, тогда как настроить?

    • Это статья как раз о том, как сделать RELAY — сервер который пересылает письма через другой SMTP сервер. Вам надо настроить локальный почтовый сервер? Или какая задача?

      • Vadim Kolosov

        Да, хочу локальный почтовый сервер, чтобы принимал и отправлял почту, потому как «белый» адрес есть. Сайт организации есть, а своей почты нет. Вот и хочу сделать.

        • Тогда рекомендую посмотреть iRedMail в связке с iRedAdmin и Roundcube