Организация почтовой базы данных
Здесь я понимаю под словом «база данных» именно хранилище учетных данных пользователей (почтовых ящиков),
а не то что Вы могли подумать. Я не рекомендую использовать реляционную СУБД (MySQL, PostgreSQL), если
число ящиков не превышает значение 400-500. Реляционная СУБД — это всегда тяжелое приложение,
которое «жрет» память и терроризирует дисковую подсистему. Каждый отдельный процесс exim создает
отдельное подключение к БД, что на первых порах (когда этих процессов работает не больше 5-6 одновременно)
никак заметно не сказывается на работе системы в целом; но когда поток почты становится интенсивнее,
сервер начинает заметно тормозить, требуя тонкого тюнинга СУБД. Этот тюнинг однозначно нужен при высокой
нагрузке, и всегда требует правильной организации самих данных в базе. На маленьком сервере это просто
абсурд, а на большом — производственная необходимость. Лучше начать с простой базы данных в /etc/passwd
или CDB, чтобы потом была возможность спроектировать реляционную БД с нуля.
В данной статье я описываю настройку exim на хранение учетных данных в /etc/passwd. Также, я предлагаю
при нескольких почтовых доменах выбрать один основной, а остальные (которые в этом случае будут виртуальными)
маршрутизировать на основной с помощью алиасов. Например, наш основной домен — mydomain.ru, в котором
есть ящики info@mydomain.ru и sales@mydomain.ru. Теперь требуется сделать домен workdom.ru с ящиками
info@workdom.ru и admin@workdom.ru. Поскольку домены хранить в /etc/passwd нереально (на группу и
пользователя там ограничение в 16 символов), то пусть адрес info@workdom.ru будет ссылкой на
info.wd.ru@mydomain.ru, а admin@workdom.ru соответственно ссылкой на admin.wd.ru@mydomain.ru. Это абсолютно
нормальный рабочий способ организации виртуального почтового хостинга для небольшого числа вручную
администрируемых ящиков. Конечно, при большом количестве ящиков полюбому придется сварганить что-то
универсальное, но эти ситуации уже выходят за пределы предметной области данной статьи.
Проверки url-ов в списках URIBL/SURBL
Устанавливаем приложения curl и GeoIP из портов ftp/curl и net/GeoIP соответственно. Затем
создаем временную папку для работы, например (я так делаю):
Скачиваем исходники с сайта David Saez:
Теперь, чтобы на FreeBSD собрать все это, необходимо слегка подправить исходники. Для начала
подготовим исходные тексты exim:
После распаковки и сборки, ищем директорию внутри work, где есть local_scan.h. У меня это
work/exim-4.69/build-FreeBSD-i386.
Теперь будем править Makefile так, чтобы он нашел все что нужно:
Путь /usr/local/include нужен для того, чтобы make нашел GeoIP.h. Также для сборки pipe.c нужно
подключить библиотеку с сигналами — правим pipe.c:
Все. Теперь собираем модуль и копируем его поближе к exim-у:
Осталось лишь подредактировать /usr/local/etc/exim/configure. В глобальной секции дописываем
(если ее еще нет) проверку mime:
а в секции ACL добавляем саму проверку:
Теперь можно запускать MTA:
Для теста URIBL, возьмем любой заблокированный url в тексте (например http://videpol.ru) и попробуем
написать сами себе письмо с какого-нибудь левого почтовика.
Exim4
Exim4 это другой агент передачи сообщений (MTA), разработанный в университете Кембриджа для использования на UNIX системах, подключенных к интернету. Exim может быть установлен вместо sendmail, хотя настройки exim сильно отличаются от настроек sendmail.
Для установки exim4 выполните следующую команду:
sudo apt-get install exim4
Настройка
Для настройки Exim4 выполните следующую команду:
sudo dpkg-reconfigure exim4-config
Появится пользовательский интерфейс. Этот интерфейс позволит вам настроить множество параметров. Например, в Exim4 файлы настроек разделены между различными файлами. Если вы решите объединить в один файл, вы можете настроить это в данном пользовательском интерфейсе.
Все параметры, которые вы настроите в пользовательском интерфейсе будут сохранены в файле /etc/exim4/update-exim4.conf. Если вы захотите что-то перенастроить, или перезапустите мастера настройки или вручную поправьте данный файл любым редактором. После настройки вам потребуется выполнить следующую команду для создания главного файла настроек:
sudo update-exim4.conf
Главный файл настроек будет создан и сохранен в /var/lib/exim4/config.autogenerated.
В любом случае вам не следует редактировать главный файл настроек /var/lib/exim4/config.autogenerated вручную. Он обновляется автоматически каждый раз по команде update-exim4.conf
Вы можете воспользоваться следующей командой для запуска сервиса Exim4:
sudo /etc/init.d/exim4 start
Аутентификация SMTP
Эта секция раскрывает как настроить Exim4 для использования SMTP-AUTH с TLS и SASL.
Первым шагом будет создание сертификата для использования TLS. Введите следующее в терминале:
sudo /usr/share/doc/exim4-base/examples/exim-gencert
Теперь Exim4 нуждается в настройке TLS. Отредактируйте /etc/exim4/conf.d/main/03_exim4-config_tlsoptions, добавив следующее:
MAIN_TLS_ENABLE = yes
Далее вам потребуется настроить Exim4 на использование saslauthd для аутентификации. Вызовите на редактирование /etc/exim4/conf.d/auth/30_exim4-config_examples и раскомментируйте секции plain_saslauthd_server и login_saslauthd_server:
plain_saslauthd_server: driver = plaintext public_name = PLAIN server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}} server_set_id = $auth2 server_prompts = : .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} .endif # login_saslauthd_server: driver = plaintext public_name = LOGIN server_prompts = "Username:: : Password::" # don't send system passwords over unencrypted connections server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}} server_set_id = $auth1 .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} .endif
Дополнительно, чтобы внешний почтовый клиент имел возможность соединиться с вашим новым exim сервером, требуется добавить нового пользователя в exim, используя следующие команды:
sudo /usr/share/doc/exim4/examples/exim-adduser
Новый файл паролей должен быть защищен от пользователей с помощью следующих команд:
sudo chown root:Debian-exim /etc/exim4/passwd sudo chmod 640 /etc/exim4/passwd
В конце обновите настройки Exim4 и перезапустите сервис:
sudo update-exim4.conf sudo /etc/init.d/exim4 restart
Настройка SASL
В этой секции раскрываются детали по настройке saslauthd чтобы обеспечить аутентификацию для Exim4.
Для начала установим пакет sasl2-bin. В терминале введите следующее:
sudo apt-get install sasl2-bin
Чтобы настроить saslauthd отредактируйте файл настройки /etc/default/saslauthd и замените
START=no
на
START=yes
Далее пользователя Debian-exim требуется включить в группу sasl чтобы Exim4 мог использовать сервис saslauthd:
sudo adduser Debian-exim sasl
Теперь запустите сервис saslauthd:
sudo /etc/init.d/saslauthd start
Теперь Exim4 настроен на SMTP-AUTH с использованием TLS и SASL аутентификации.
Сервис POP3
Почему именно tpop3d, а не, скажем, popa3d (в порядке убывания важности):
- Можно прикручивать свою собственную схему авторизации с помощью perl-скриптов
- Очень легко реализуется мульти-доменный (virtual domains) доступ к ящикам
- Также может использовать для авторизации MySQL/PgSQL/LDAP/PAM/file/cmd
- Обширные возможности для конфигурирования
Итак, будем использовать PAM, т.к. учетные записи почтовых ящиков хранятся в /etc/passwd. В исходном
файле конфигурации /usr/local/etc/tpop3d.conf все уже заточено для работы в стандартном режиме (ящики
в формате mbox в /var/mail, авторизация через PAM). В нашем же случае надо лишь кое-что подправить.
Пусть любители ломать POP3-сервисы отдыхают (т.к. сервис будет «прослушивать» только внутренний интерфейс):
RFC по POP3 требует ждать неожиданного замолчавшего клиента 600 сек (10 мин). Я считаю, что это в современных
условиях весьма много:
Ящики в формате maildir и находятся в /mail:
Один ящик — один клиент: так должно быть. Если двум или более клиентам нужно получать почту, направленную на
один и тот же адрес, следует воспользоваться алиасами.
Теперь можно запускать сервис:
Архив блога
-
►
2018
(2)
-
►
апреля
(1)
►
27 апр
(1)
-
►
февраля
(1)
►
08 фев
(1)
-
-
►
2017
(5)
-
►
декабря
(2)
►
13 дек
(2)
-
►
июля
(1)
►
14 июл
(1)
-
►
марта
(1)
►
22 мар
(1)
-
►
января
(1)
►
23 янв
(1)
-
-
►
2016
(7)
-
►
декабря
(1)
►
29 дек
(1)
-
►
октября
(2)
►
26 окт
(1)
►
13 окт
(1)
-
►
сентября
(1)
►
26 сен
(1)
-
►
марта
(1)
►
02 мар
(1)
-
►
февраля
(1)
►
19 фев
(1)
-
►
января
(1)
►
27 янв
(1)
-
-
►
2015
(11)
-
►
октября
(1)
►
23 окт
(1)
-
►
сентября
(1)
►
24 сен
(1)
-
►
июля
(3)
►
14 июл
(1)
►
13 июл
(1)
►
10 июл
(1)
-
►
апреля
(1)
►
23 апр
(1)
-
►
марта
(2)
►
27 мар
(1)
►
18 мар
(1)
-
►
февраля
(1)
►
04 фев
(1)
-
►
января
(2)
►
28 янв
(1)
►
22 янв
(1)
-
-
►
2014
(6)
-
►
декабря
(1)
►
18 дек
(1)
-
►
ноября
(1)
►
10 ноя
(1)
-
►
сентября
(1)
►
26 сен
(1)
-
►
июня
(1)
►
03 июн
(1)
-
►
мая
(1)
►
21 мая
(1)
-
►
февраля
(1)
►
18 фев
(1)
-
-
►
2013
(24)
-
►
декабря
(2)
►
17 дек
(1)
►
12 дек
(1)
-
►
ноября
(1)
►
08 ноя
(1)
-
►
октября
(5)
►
29 окт
(1)
►
28 окт
(1)
►
15 окт
(1)
►
04 окт
(2)
-
►
августа
(2)
►
13 авг
(1)
►
01 авг
(1)
-
►
июля
(1)
►
07 июл
(1)
-
►
июня
(6)
►
25 июн
(1)
►
21 июн
(1)
►
20 июн
(1)
►
19 июн
(1)
►
14 июн
(1)
►
11 июн
(1)
-
►
мая
(1)
►
06 мая
(1)
-
►
марта
(2)
►
31 мар
(1)
►
12 мар
(1)
-
►
февраля
(2)
►
18 фев
(1)
►
07 фев
(1)
-
►
января
(2)
►
23 янв
(1)
►
09 янв
(1)
-
-
►
2012
(34)
-
►
декабря
(2)
►
03 дек
(1)
►
01 дек
(1)
-
►
ноября
(7)
►
25 ноя
(1)
►
22 ноя
(2)
►
15 ноя
(1)
►
08 ноя
(1)
►
03 ноя
(1)
►
02 ноя
(1)
-
►
октября
(1)
►
18 окт
(1)
-
►
сентября
(4)
►
21 сен
(1)
►
10 сен
(3)
-
►
августа
(2)
►
25 авг
(1)
►
22 авг
(1)
-
►
июля
(2)
►
27 июл
(1)
►
03 июл
(1)
-
►
июня
(5)
►
12 июн
(2)
►
11 июн
(1)
►
08 июн
(1)
►
07 июн
(1)
-
►
мая
(10)
►
27 мая
(1)
►
24 мая
(2)
►
16 мая
(1)
►
14 мая
(2)
►
12 мая
(1)
►
11 мая
(1)
►
10 мая
(2)
-
►
января
(1)
►
30 янв
(1)
-
-
▼
2011
(19)
-
▼
ноября
(2)
-
▼
30 ноя
(1)
Важные и полезные команды EXIM
►
10 ноя
(1)
-
-
-
►
сентября
(7)
►
23 сен
(1)
►
13 сен
(1)
►
12 сен
(2)
►
09 сен
(2)
►
01 сен
(1)
-
►
августа
(4)
►
30 авг
(1)
►
27 авг
(1)
►
26 авг
(1)
►
24 авг
(1)
-
►
июля
(1)
►
25 июл
(1)
-
►
июня
(1)
►
01 июн
(1)
-
►
апреля
(2)
►
27 апр
(1)
►
25 апр
(1)
-
►
марта
(2)
►
29 мар
(1)
►
19 мар
(1)
-
►
2010
(59)
-
►
декабря
(3)
►
24 дек
(1)
►
12 дек
(1)
►
11 дек
(1)
-
►
ноября
(5)
►
22 ноя
(2)
►
13 ноя
(2)
►
03 ноя
(1)
-
►
октября
(3)
►
12 окт
(1)
►
11 окт
(1)
►
01 окт
(1)
-
►
сентября
(3)
►
16 сен
(1)
►
15 сен
(2)
-
►
августа
(3)
►
28 авг
(1)
►
17 авг
(1)
►
02 авг
(1)
-
►
июля
(4)
►
14 июл
(1)
►
13 июл
(1)
►
01 июл
(2)
-
►
июня
(5)
►
29 июн
(1)
►
23 июн
(1)
►
21 июн
(1)
►
17 июн
(1)
►
11 июн
(1)
-
►
мая
(4)
►
26 мая
(1)
►
15 мая
(1)
►
13 мая
(1)
►
12 мая
(1)
-
►
апреля
(9)
►
26 апр
(1)
►
23 апр
(1)
►
15 апр
(3)
►
08 апр
(1)
►
07 апр
(2)
►
01 апр
(1)
-
►
марта
(5)
►
30 мар
(1)
►
15 мар
(1)
►
09 мар
(1)
►
08 мар
(1)
►
05 мар
(1)
-
►
февраля
(3)
►
22 фев
(1)
►
18 фев
(1)
►
17 фев
(1)
-
►
января
(12)
►
27 янв
(2)
►
24 янв
(1)
►
18 янв
(1)
►
14 янв
(1)
►
06 янв
(1)
►
05 янв
(1)
►
04 янв
(2)
►
02 янв
(3)
-
-
►
2009
(8)
-
►
декабря
(3)
►
24 дек
(1)
►
18 дек
(1)
►
09 дек
(1)
-
►
ноября
(1)
►
01 ноя
(1)
-
►
октября
(1)
►
12 окт
(1)
-
►
июля
(1)
►
29 июл
(1)
-
►
июня
(1)
►
19 июн
(1)
-
►
апреля
(1)
►
29 апр
(1)
-
-
►
2008
(6)
-
►
апреля
(1)
►
26 апр
(1)
-
►
марта
(1)
►
16 мар
(1)
-
►
февраля
(2)
►
27 фев
(1)
►
23 фев
(1)
-
►
января
(2)
►
15 янв
(1)
►
13 янв
(1)
-
-
►
2007
(9)
-
►
декабря
(3)
►
18 дек
(1)
►
17 дек
(1)
►
05 дек
(1)
-
►
ноября
(2)
►
29 ноя
(1)
►
28 ноя
(1)
-
►
июля
(4)
►
27 июл
(1)
►
21 июл
(1)
►
20 июл
(1)
►
19 июл
(1)
-
Тестирование макросов
exim -be
Выход по
Работа с Dovecot
Для работы в паре с IMAP сервером Dovecot
Папка:
- 01_dovecot
-
dovecot: debug_print = "T: dovecot for $local_part@$domain" driver = pipe command = /usr/lib/dovecot/dovecot-lda -f $sender_address message_prefix = message_suffix = log_output delivery_date_add envelope_to_add return_path_add group = mail user = vmail temp_errors = 64 : 69 : 70: 71 : 72 : 73 : 74 : 75 : 78
Значение переменной должно быть согласовано переменной сервера Dovecot
Работа с LDAP
Папка:
- 99_ldap
-
.ifndef LDAP_ROOT_DN LDAP_ROOT_DN = ldap:///АДРЕС И ПУТЬ К СЕРВЕРУ LDAP .endif
Папка:
- 101_ldap_user
-
ldap_user: driver = redirect allow_fail allow_defer # Поиск maildrop в полях mail объектов objectclass=mailUser data = ${lookup ldapm {LDAP_ROOT_DN?maildrop?sub?\. (&(mail=${quote_ldap:$local_part@${domain}})(objectclass=mailUser))}} cannot_route_message = Неизвестный пользователь (Unknown user) file_transport = dovecot
- 102_ldap_groups
-
ldap_groups: driver = redirect allow_fail allow_defer # Поиск членов групп objectclass=mailGroup, для каждого члена группы поиск maildrop. data = ${sg{${map {<\n \. ${sg{${lookup ldapm { \. LDAP_ROOT_DN?member?sub?\. (&\. (objectClass=mailGroup)\. (mail=${quote_ldap:${local_part}@${domain}})\. )\. }}}{\N, \N}{\n}}} \. {${lookup ldap{ \. ldap:///${quote_ldapdn:$item}?maildrop?base?}} \. }}}{\N\n\N}{, } \. } cannot_route_message = Неизвестный пользователь/группа (Unknown user/group)
ClamAV
Папка:
- 02_exim4-config_options
-
av_scanner = clamd:/var/run/clamav/clamd.ctl
Папка:
- 40_exim4-config_check_data
-
acl_check_data: deny malware = * demime = * hosts = * message = Это письмо содержит вирус ! ($malware_name)
Пересылка копий всей почты
Папка:
- 103_message_all_copy
-
message_all_copy: driver = redirect unseen domains = * data = АДРЕС
Этот роутер должен быть описан в самом начале роутеров
Удаление полей из заголовка сообщения
Уведомления о доставке report-type=disposition-notification; 1. Уведомления о доставке (Delivery Status Notification, DSN). Почтовый клиент может позволять пользователю установить требование уведомления о доставке сообщения в почтовый ящик получателя. В случае, если сервер, на котором расположен почтовый ящик, поддерживает функцию генерации таких уведомлений, то отправитель сообщения будет информирован о факте доставки. 2. Уведомления о действиях с сообщением, которые совершил получатель (Message Disposition Notification, MDN). Ряд почтовых клиентов позволяют указывать необходимость уведомления отправителя о тех действиях, которые совершил получатель сообщения. Технически это реализуется путем помещения дополнительной информации в заголовок сообщения (Поле "Disposition-Notification-To"). Пожалуй, самым известным типом таких уведомлений является "уведомление о прочтении", генерируемое после отображения сообщения на экране почтовым клиентом получателя. Кроме того, отправитель может уведомляться о печати сообщения, об удалении без прочтения и т.п. Конкретный состав возможных уведомлений определяется почтовым клиентом. Уведомления генерируются клиентом получателя (в случае, если клиент поддерживает эту функцию) при обнаружении соответствующего требования в заголовке полученного сообщения. Наиболее развитые клиенты позволяют выбрать режим обработки уведомлений. Обычно в качестве альтернатив выбора используются три варианта: автоматическая отправка уведомлений; автоматическое игнорирование требований, при этом уведомления не отправляются; предоставление в каждом конкретном случае пользователю возможности выбора между отправкой уведомления и игнорированием требования. Примеры удаления полей заголовка http://www.lissyara.su/articles/freebsd/mail/exim+exchange/
Список доступных (при компиляции) аутентификаторов средствами dovecot
exim -bV | grep Authenticators
Exim — некоторые полезные команды
Командная строка Exim’а использует стандартный для Unix-систем способ задания опций. Каждая начинается с дефиса, после каждой может следовать несколько аргументов.
exim -bP
Вывод всех значений, установленных в конфигурационном файле.
exim -bp
Вывод почтовой очереди. Вывод списка сортируется в хронологическом порядке по прибытию сообщений. Если опция сопровождается списком идентификаторов сообщений, то показываются только эти сообщения. Пример вывода:
10h 729K 1RdheP-00021S-GM <info domain com ua> D user rambler ru user2000 gmail com D user safaritour com ua D user fortunat zssm zp ua |
Первая строка содержит 4 колонки: сколько сообщение находится в очереди, размер сообщения, ID сообщения, отправитель, как он указан в «конверте» (для bounce «<>»). Если сообщение заморожено (приостановлена попытка его доставки), в конце этой строки показывается текст «*** frozen ***». Адреса по которым сообщение уже доставлено отмечены символом «D» (Delivered — доставлено). Если оригинальный адрес раскрывается в несколько адресов через файл алиасов или форвардов, оригинальный показывается с «D» только когда завершены доставки для всех дочерних адресов.
exim -bpr
Вывод почтовой очереди, но без сортировки. Полезно, когда в очереди много сообщений, а сортировка не нужна.
exim -bpc
Вывод количества сообщений в очереди.
exim -Mvl <message id>
Посмотр лог сообщения.
exim -Mvb <message id>
Вывод тела сообщения.
exim -Mvh <message id>
Вывод заголовков сообщения
exim -Mrm <message id> <message id> …
Удалить сообщение из очереди и не посылать никаких ошибок (в логах запись о удалении будет).
exim -Mg <message id> <message id> …
Удалить сообщение из очереди и отослать «отлуп» (cancelled by administrator).
exim -M <message id> <message id> …
Ускорить доставку сообщения (немедленно выполняет доставку сообщения).
exim -Mar <message id> <address> <address> …
Добавить адрес в вписок получателей сообщения.
exim -Mes <message id> <address>
Заменить адрес отправителя в сообщении на указанный.
exim -Mf <message id> <message id> …
Отметить перечисленные сообщения как «frozen». Попытки доставки сообщения прекращаются, пока сообщение не будет разморожено вручную, или пока не пройдет время указанное в «auto_thaw».
exim -Mt <message id> <message id> …
«Разморозить» сообщения.
Для сообщений, которые подозреваются в спаме удобно сначала массово, сделать -Mf, потом -Mvl, -Mvh и -Mvb для пары выбранных наугад сообщений. Если все еще невозможно с консоли определить спам ли это (например, проблемы с кодировками или есть вложения), то можно с помощью -Mar добавить себя в список получателей, и ускорить данное сообщение с помощью -M. Когда все наконец станет ясно, то либо -Mrm, либо -Mt.
exipick -i | xargs exim -Mrm
Очистить очередь. Тоесть, по сути удаляем все сообщения из очереди.
exipick -zi | xargs exim -Mrm
Удалить из очереди все «замороженные» сообщения (помеченные как «frozen»).
От автора
Я не противник postfix и sendmail. Однако проект протокола SMTP судя по всему писался, что
называется, «на коленке». Поэтому, администратор почтового сервера должен очень хорошо
разбираться в тонкостях работы своего сервера, чтобы хоть как-либо эффективно
сдерживать поток входящей (а иногда и исходящей) грязи (вирусы + спам + неизбежные проблемы,
определяющие специфику конкретной системы).
Sendmail с этой точки зрения (разбора тонкостей) является динозавром, раскопки которого давно
пора поручить опытным археологам — может быть они расскажут нам о светлом прошлом UUCP.
Postfix — другая крайность, свежий софт; работает по принципу «поставил и забыл». Но:
- Дыры в нем находят ежеквартально — как в свое время находили в sendmail.
- Активный интерес к postfix чаще всего проявляют Unix (а еще чаще Linux) админы со слишком
серьезным отношением к себе. Они думают, что одна эта софтина решит все их проблемы с почтой раз и
навсегда. Они ее ставят, запускают, и фанатеют от такой «простоты». - Опции конфигурирования postfix местами настолько путанны, что без чтения документации
редактировать их сложновато. А качество последней оставляет желать лучшего.
- Дыры можно отслеживать и вовремя зашивать (обновляться), но ведь выбор postfix-а обычно делается
именно из-за нежелания изучать предмет хоть-сколько нибудь глубоко. Эта лень мешает подписаться на рассылку,
а без рассылки о существовании дыр узнаем по факту взлома — со временем сервер таки ломают. - Фанатизм фиксирует в уме админа уверенность в абсолютной правильности (а если смотреть на треды
в форумах, то «праведности») такого метода работы. И когда приходит время крутить настройки, гордыня
(которая выросла из фанатизма) заставляет беднягу усиленно сопротивляться переменам. - Изменение параметров уже работающей системы — процесс всегда гораздо более трудоемкий и нервный, чем
настройка с нуля, когда есть время спокойно «покрутить». А тут еще эти «странные» опции…. Приемущество
postfix, указанное на сайте как «easy to administer» просто не соответствует действительности. Вообще
чтение документации по postfix может привести к исчезновению энтузиазма: не делайте это, не делайте то…
Трезвостатья расчитана
на небольшие почтовые сервера
В статье приводятся ссылки на различные части RFC протокола SMTP, в скобках приводится конкретный
пункт. Полный текст сего документа можно посмотреть
на IETF под номером 2821.
Файл »update-exim4.conf.conf»
- update-exim4.conf.conf
-
dc_eximconfig_configtype='internet' dc_local_domains='domain.com' dc_primary_hostname='server' dc_other_hostnames='server' dc_smarthost='server::25' dc_relay_from_hosts='127.0.0.1' dc_local_interfaces='0.0.0.0' dc_readhost='*' dc_relay_domains='*' dc_relay_nets='*' dc_minimaldns='true' CFILEMODE='644' dc_hide_mailname='false' dc_mailname_in_oh='true' dc_localdelivery='dovecot' dc_virtualdelivery='dovecot' dc_use_split_config='true'
Имя | Описание | Примечание |
---|---|---|
Адрес SMTP сервера через который отправлять почту во внешние домены | ||
Использовать конфигурацию в виде отельных файлов в | ‘ | |
The main configuration type. Sets macro DC_eximconfig_configtype. The macro usually contains a shorthand for one of the choices for the “General type of mail configuration” debconf question (See README.Debian). | dc_eximconfig_configtype debconf configtype mapping: internet site; mail is sent and received directly using SMTP, mail sent by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no local mail, local delivery only; not on a network, no configuration at this time | |
Boolean option that controls whether the local mailname in the headers of outgoing mail should be hidden. (Only effective for “smarthost” and “satellite” | HIDE_MAILNAME | |
Internal use only Boolean option that is set by the maintainer scripts after adding the contents of /etc/mailname to the dc_other_hostnames list. This is a transition helper since it wouldn’t other wise be possible to see whether that domain name has been removed from dc_other_hostnames on purpose. This is not used by update-exim4.conf, and no macro is set. | ||
Boolean option that controls whether update-exim4.conf strips the comments from the target configuration file (default) or leaves them in. This can be overridden by the command line options –keep comments and –removecomments. The value is not written to an exim macro. | ||
name of the default transport for local mail delivery. Defaults to mail_spool if unset, use maildir_home for delivery to ~/Maildir/ | LOCAL_DELIVERY | |
List of IP addresses the Exim daemon should listen on. If this is left empty, Exim listens on all interfaces | MAIN_LOCAL_INTERFACES only if there is a non-empty value | |
Boolean option to activate some option to minimize DNS lookups, if set to “true” a macro DC_minimaldns is defined. If true, the macro DC_minimaldns is set to 1, and the macro | MAIN_HARDCODE_PRIMARY_HOSTNAME | |
is used to build the local_domains list, together with “localhost”. This is the list of domains for which this machine should consider itself the final destination. The local_domains list ends up in the macro | MAIN_LOCAL_DOMAINS | |
For “smarthost” and “satellite” it is possible to hide the local mailname in the headers of outgoing mail and replace it with this value instead, using rewriting. For “satellite” only, this value is also the host to send local mail to | DCreadhost | |
Список доменов в которые можно отправлять почту | MAIN_RELAY_TO_DOMAINS | |
A list of machines for which we serve as smarthost. Please note that 127.0.0.1 and ::1 are always permitted to relay since /usr/lib/sendmail is available anyway and relay control doesn’t make sense here | MAIN_RELAY_NETS |
dc_eximconfig_configtype='internet' dc_local_domains='domain.ru' dc_primary_hostname='domain.ru' dc_other_hostnames='domain.ru' dc_smarthost='mail.domain.ru' dc_relay_from_hosts='127.0.0.1' dc_local_interfaces='0.0.0.0' dc_readhost='*' dc_relay_domains='*' dc_relay_nets='*' dc_minimaldns='true' CFILEMODE='644' dc_hide_mailname='false' dc_mailname_in_oh='true' dc_localdelivery='dovecot'