Category: exim

Апр 29 2009

Exim, удаляем frozen сообщения

Exim сообщения которые он не смог отправить и уже не будет пытаться отправлять, помечает как frozen. На почтовых системах с активным почтовым трафиком таких сообщений может скопится очень много. Со временем(в зависимости от настроек) exim эти сообщения уничтожает, на скорость обработки сообщений в очереди они не влияют, так как пометка frozen исключает их из обработки.
Но зато они часто очень мешают анализировать очередь.
Что бы избавится от всех frozen сообщений в очереди можно воспользоваться такой комбинацией команд:

exiqgrep -zi | xargs exim -Mrm

и все, будут уничтожены все frozen сообщения.
Остается только напомнить, что перед удалением стоит все таки проверить, вдруг некоторые из сообщений заморозились в результате сбоя и на самом деле являются полезными.
Инициировать отправку всех сообщений из очереди (не завсимо от того frozen они или нет) можно командой:

exim -qqff
Дек 17 2008

Установка и настройка Exim+ClamAv+DSpam+белый список отправителей(whitelist)

Exim — почтовый сервер, один из самых популярных на сегодняшний день. На основе его, построен прием почты таких известных систем, как ukr.net, mail.ru. Всю массу возможностей я описывать не буду, попытаюсь объяснить как настроить систему с антиспам фильтром (DSPAM) и антивирусом(ClamAV).
Начнем с установки Exim. В портах FreeBSD exim представлен в 6 вариантах:
/usr/ports/mail/exim/ — обычная сборка
/usr/ports/mail/exim-mysql/ — добавлена возможность обращаться к базе данных MySQL
/usr/ports/mail/exim-postgresql/ — добавлена возможность обращаться к PostgreSQL
/usr/ports/mail/exim-sqlite/ — добавлена возможность обращаться к SQLite
/usr/ports/mail/exim-sa-exim/ — exim c патчем SA-Exim, специальный патч для работы со SpamAssassing на этапе SMTP диалога
Read more »

Ноя 23 2008

Exim, маршрутизация, в зависимости от адреса отправителя.

Во многих компаниях, как правило, существует несколько внешних каналов. Как правило, один канал основной и один канал резервный, который обычно простаивает. Я такие каналы обычно использую, под почту определенной части пользователей. Для организации этого понадобится 3 smtp сервера:
1. Тот через который непосредственно отправляют почту пользователи. Его рекомендуют сделать выделенным, и именно на нем расположить все проверки на спам, вирусы и тд и тп.
2. Постоянный почтовый сервер, отправляющий почту через основной канал интернет, тут уже не нужны никакие «тяжелые» проверки
3. Резервный почтовый сервер, отправляющий почту через резервный канал.
Read more »

Ноя 19 2008

Exim, почта для домена в один почтовый ящик

Для примера перенаправим почту домена hilik.org.ua в почтовый ящик пользователя hilik.
Для решения нашей задачи, понадобится внести «специальный» router в конфигурацию exim и «фейковый домен». Настройку начнем с того, что добавим домен, откроем в «любимом» текстовом редакторе
Read more »

Ноя 18 2008

Exim, настройка фильтров.

У exim’a, есть мощная система, способная заменить и sieve и procmail. В отличие от упомянутых почтовых фильтров, фильтр эксима имеет более «человеческий» синтаксис, чем сразу и подкупает.
Read more »

Окт 21 2008

Exim, список разрешенных отправителей.

Появидась такая задача: разрешить отправку за пределы локального домена, только некоторым, emailы которых занесены в особый, утвержденный руководством список. Взял я exim и начал крутить, в итоге вот что получилось, приведенный код втавлять в начало acl_check_rcpt:

#По умолчанию никому не разрешено 
#отправлять за пределы нашего домена
warn   set acl_c4   = ${eval:0}
#Разрешаем отправку к локальным пользователям
warn  domains      = +local_domains  
set acl_c4   = ${eval: 1}
#Разрешаем отправку пользователям описанным
#в файле /usr/local/etc/exim/sendertable.dbm
warn  message       = sender $sender_address
domains   = !+local_domains
condition = ${if eq {${lookup{$sender_address}dbm{/usr/local/etc/exim/sendertable.dbm}}{yes}}
set acl_c4   = ${eval:1}  
#Разрешаем отправку от пустого пользователя(всякие почтовые отлупы)
warn    message       = empty sender
domains       = !+local_domains
condition     = ${if eq {$sender_address}{}}
set acl_c4   = ${eval:1}
#А тут у нас непосредственная блокировка отправок тех кому не разрешено
#В предыдущих строках осуществлялась проверка и установка флагов
deny   message        = Not allowed sender
domains       = !+local_domains
condition     = ${if eq {$acl_c4}{0}}

/usr/local/etc/exim/sendertable.dbm получается так, создаем файл
/usr/local/etc/exim/sendertable такого формата:

hilik@hilik.kiev.ua yes

Потом делаем:

exim_dbmbuild /usr/local/etc/exim/sendertable /usr/local/etc/exim/sendertable.dbm

остается перезапустить exim.

Окт 19 2008

Exim и smarthost

Часто провайдеры закрывают отправку почты от клиентов, напрямую в интернет, предлагая воспользоваться их SMTP сервером, для отправки почты. Для того что бы воспользоваться провайдерским relayем из eximа, нужно вставить такой роутер:

smart_relay:
driver = manualroute
#Эта строка указывает, что роутер
#применяется для всех доменов, кроме локальных
domains = ! +local_domains
transport = remote_smtp
#Тут нужно указать ip адрес
#SMTP сервера провайдера
route_data = 89.252.0.132
no_more
no_verify_sender

Проверяем

exim -bt bill@microsoft.com

Получаем

bill@microsoft.com
router = smart_relay, transport = remote_smtp
host 89.252.0.132 [89.252.0.132]

Все работает замечательно.

Следует отметить, что если вы применяли роутер mailertable из статьи Маршрутизайция в эксим либо нечто подобное, то роутер smart_relay следует указать после него.

Окт 18 2008

Маршрутизация (mailertable) в exim

Понадобился мне аналог mailertable из sendmailа, но в eximе.
В exim есть механизм routers, который и определяет куда направлять письмо.
Начинается секция routers с routerа dnslookup, благодаря этому роутеру и определяется маршрутизация в соответствии с MX записи DNS, в нашей ситуации это нам не поможет.
Поэтому мы добавим свой роутер mailrtable перед роутером dnslookup. В итоге у нас получается такая конфигурация

 
begin routers
 
mailertable:
driver = manualroute
domains = ! +local_domains
transport = remote_smtp
route_data = ${lookup{$domain}dbm{/usr/local/etc/exim/mailertable.dbm}}
 
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
 
... далее стандартная конфигурация ...

Файл /usr/local/etc/exim/mailertable.dbm получаем так :
Берем любимый редактор и создаем файл
/usr/local/etc/exim/mailertable, такого формата

hilik.org.ua 192.168.0.1

И после этого выполняем команду

exim_dbmbuild /usr/local/etc/exim/mailertable /usr/local/etc/exim/mailertable.dbm

Проверить что у нас получилось можно командой

exim -bt hilik@hilik.org.ua

По итогу мы должны увидеть:

hilik@hilik.org.ua
router = mailertable, transport = remote_smtp
host 192.168.0.1 [192.168.0.1]

Все работает замечательно.


Украинская Баннерная Сеть