Есть настроенный по этой статье почтовик. Решил его немного "допилить", подключив возможность автоматического ответа на входящую корреспонденцию. Данная возможность будет полезна, например, уехавшим в отпуск... Либо же отправка уведомления от технического контакта, что заявка принята и отправлена в обработку... Данная "фича" может пригодится в самых разнообразных ситуациях.
Итак, приступим к настройке.... В конфигурационный файл Exim-а в секцию routers, перед роутером virtual_localuser добавим такой блок:
# Автоответчик. Установить в 1 для активации автоответа. autoreply: driver = accept retry_use_local_part no_expn no_verify unseen condition = ${lookup mysql{SELECT login FROM users \ WHERE login='${local_part}' AND domain='${domain}' AND reply = '1'}{yes}{no}} senders = . ! ^postmaster@.*:\ ! ^root@.*\ ! ^noreply@.*. transport = address_autoreply |
Стоит обратить внимание на параметр unseen в конфигурации данного роутера. Его присутствие означает то, что обработка письма после выхода из роутера будет перенаправляться в следующий роутер, а не завершаться. Тоесть, согласно порядка проходжения роутеров, будет направлен автоответ отправителю, а после этого письмо "упадет" в почтовый ящик адресата.
Теперь пора добавить новый транспорт - address_autoreply, поскольку на него ссылается добавленный роутер. Добавим в секцию transports такой блок:
# Автоответчик. address_autoreply: driver = autoreply text = ${lookup mysql{SELECT text_reply FROM users WHERE \ login='${local_part}' AND domain='${domain}'}} from = $local_part@$domain once_repeat = 1d subject = "Autoreply from $local_part@$domain" headers = "Content-Type: text/plain; charset=cp1251" to = $sender_address |
Добавим новые поля в таблицю users:
mysql> USE exim;
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
mysql> ALTER TABLE `users` ADD `reply` ENUM('0', '1') NOT NULL DEFAULT '0'; Query OK, 2 rows affected (0.06 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE `users` ADD `text_reply` TEXT NOT NULL; |
Отправим Exim-у сигнал SIGHUP - необходимость перезапуска:
# sh /usr/local/etc/rc.d/exim reload |
Установим для своей учетки режим автоответа:
mysql> UPDATE `exim`.`users` SET `reply` = '1', `text_reply` = 'Тестирование автоответчика... Никуда я не девался ;)' WHERE `users`.`login` = 'muff' AND `users`.`domain` = 'ispalternativa.net.ua'; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 |
На этом настройка автоответа закончена. Выполнил тестирование - все работает...
Последние комментарии
11 недель 4 дня назад
35 недель 6 дней назад
2 года 36 недель назад
3 года 6 недель назад
3 года 29 недель назад
3 года 44 недели назад
3 года 45 недель назад
3 года 48 недель назад
4 года 7 недель назад
4 года 12 недель назад