Вопрос или проблема
Я ищу MTA (работающий на Linux), который будет автоматически отвечать и/или пересылать электронные письма в зависимости от адреса электронной почты, а также, по желанию, от отправителя.
В данный момент текущий MTA (Postfix) является конечной точкой subdomain.domain.tld, но этот домен вскоре прекратит свое существование. Как я могу настроить MTA на выполнение следующих действий:
- Если на [email protected] отправлено письмо, и отправитель с @domain.tld, отправить пользовательский автоответ.
- Если на [email protected] отправлено письмо, и отправитель не с @domain.tld, отправить пользовательский автоответ и переслать письмо на [email protected]
- Если на @subdomain.domain.tld отправлено письмо, отправить автоответ с общим сообщением “Этот пользователь/адрес электронной почты не существует”.
- Если на @subdomain.domain.tld отправлено письмо, удалить его.
Список действительных пользователей содержит около 50 пользователей и не будет расширяться. В данный момент это обычный текстовый файл. У меня нет проблем с переходом с Postfix на другой MTA, который может лучше подойти для этой задачи.
Ответ или решение
Для решения вашей задачи с автоматическими ответами и пересылкой электронной почты на сервере с ОС Linux, вы можете использовать MTA (Mail Transfer Agent), такой как Postfix, который можно настроить под ваши требования. Ваша конфигурация может включать использование фильтров и служб обработки, таких как Sieve или Procmail. Приведенные ниже шаги помогут вам настроить Postfix для выполнения ваших требований.
Установка и базовая конфигурация Postfix
-
Установите Postfix (если он еще не установлен):
sudo apt update sudo apt install postfix
-
Настройка Postfix:
В процессе установки, выберите тип почтовой системы, соответствующий вашим требованиям (например, «Internet Site»). Убедитесь, что доменное имя вашей почты правильно указано.
Настройка автоответчиков и пересылки
Для настройки автоответчиков и пересылки сообщений вам потребуется использовать Sieve. Вам также понадобится dovecot
для поддержки Sieve.
-
Установите Dovecot и Sieve:
sudo apt install dovecot-core dovecot-imapd dovecot-sieve dovecot-managesieved
-
Настройте Dovecot для использования Sieve. Откройте файл конфигурации Dovecot:
sudo nano /etc/dovecot/conf.d/10-master.conf
Убедитесь, что в нем есть следующие настройки:
service managesieve-login { inet_listener sieve { port = 4190 } }
-
Создайте Sieve-скрипты. Вам нужно будет создать файлы, которые будут обрабатывать логику автоответчиков и пересылок. Например:
-
Для email
user1@subdomain.domain.tld
со sender@domain.tld
:require "vacation"; if allof (address :is "from" "specific@domain.tld") { vacation :subject "Auto-reply" :message "Ваше сообщение было получено."; }
-
Для email
user2@subdomain.domain.tld
и случаев пересылки:require ["fileinto", "imap4flags", "vacation"]; if not address :domain "from" "domain.tld" { vacation :subject "Auto-reply" :message "Ваше сообщение было получено и будет переслано."; redirect "forward@destination.com"; }
-
Обработка невалидных пользователей
Для управления невалидными адресами вы можете использовать следующую конфигурацию в файле main.cf
Postfix:
# Закрыть ящики для несуществующих пользователей
notify_classes = bounce, delay
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
С помощью этой настройки Postfix просто не будет обрабатывать почту для несуществующих адресов.
Дополнительные шаги
-
Тестирование конфигурации: После внесения изменений не забудьте перезапустить Postfix и Dovecot:
sudo systemctl restart postfix sudo systemctl restart dovecot
-
Логи: Проверьте логи (
/var/log/mail.log
или аналогичные) для отладки и обеспечения правильной работы. -
Системные и сетевые настройки: Убедитесь, что ваши системные настройки и сетевые параметры настроены на прием почты и открыты для исходящих соединений.
Следуя данным шагам, вы сможете настроить ваш MTA на Linux для выполнения требований по автоответу и пересылке согласно вашим пожеланиям. Если вы захотите перейти на другой MTA, такие как Exim или Sendmail, шаги будут аналогичными, но настройки будут различаться.