Задача: получить возможность Exim-у использовать acl-правило spf.
Исходная: Debian 8, Exim 4.84.2
Качаем исходники:
apt-get build-dep exim4
apt-get install libspf2-dev
apt-get source exim4
Задача: получить возможность Exim-у использовать acl-правило spf.
Исходная: Debian 8, Exim 4.84.2
Качаем исходники:
apt-get build-dep exim4
apt-get install libspf2-dev
apt-get source exim4
Однажды утром на почтовом сервере Exchange обнаружили более 100 000 сообщений в очереди. Не суть, как они там оказались. Суть в том, что для удаления сообщений из очереди ушло примерно 4-5 часов, средствами PowerShell. Выборка из очереди 20 000 записей – продолжалась более 30 минут… до конца не дождались, уменьшили количество до 1 000 потом 2 000… но запросы все равно выполнялись очень медленно.
Делаю тест, дабы понять – как будет вести себя Exim в подобной ситуации, какие ожидают временные потери.
Continue reading
Ошибка: no immediate delivery: more than 10 messages received in one connection
Решение: в конфиге
smtp_accept_queue_per_connection = 50
Отключаем IPV6
# добавляем в конфиг
disable_ipv6 = true
Eximstat
Linux: Debian 8
echo -e "#"'!'"/bin/sh\neximstats -nr -nt -tnl -include_original_destination -bydomain -byemail /var/log/exim4/main.log | mail -s "WDM: EXIM statistics" [email protected]\n#" > /etc/cron.daily/eximstat
chmod +x /etc/cron.daily/eximstat
Локальний BLACKLIST по отправителю
“LIMIT 1” – обязательно.
acl_check_rcpt:
# ...
deny
message = SPAM blocked. Sender is in blacklist
senders = ${lookup mysql{SELECT '$sender_address' \
FROM `blacklist_sender_address` \
WHERE instr('$sender_address',`address`)>0 LIMIT 1} \
Таблицы
CREATE TABLE IF NOT EXISTS `blacklist_sender_address` (
`address` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
blackhole – инструмент EXIM на уровне роутеров, позволяющий выкидывать письма, без DENY ответа отправителю.
Использую в случаях:
– сотрудники зарегистрировались где-попало на служебные ящики и давно уволились. выкидываем их письма.
– Exchange пересылает письма сотрудников на другой домен (после перевода), а тот почтовик их отвергает после проверки SPF.
Получатель
CREATE TABLE IF NOT EXISTS `blackhole_recipient` (
`recipient` varchar(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
swaks -a -tls -q HELO -s mail.domain.com -au [USERNAME] -ap '[PASSWORD]'
openssl s_client -connect mail.domain.com:25 -starttls smtp
Prepare credentials
$ echo -n username | base64
dXNlcm5hbWU=
$ echo -n Pa$$W0rd | base64
UGE2MzgxNzJXMHJk
В кофигурации по умолчанию имеем:
begin retry
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,5m; G,16h,30m,1.5; F,1d,4h
Означают:
F,2h,5m : повторять каждые 15 минут, продолжать до 2 часов.
G,16h,30m,1.5 : повторять каждые 30 минут, а потом умножать время на 1.5, продолжать до 16 часов.
F,4d,4h : повторять каждые 4 часов, продолжать до 4-х дней.
Проверка правил повторов:
# exim -brt [отправитель или домен отправителя] exim -brt [email protected]
Развернутое описание : на lissyara.su
Задача: – шифровать пароль в mysql базе exim
FreeBSD 10.
Вcе компоненты установлены из портов без ручных патчей.
Continue reading
Zabbix Agent 2.2
Exim 4.84
Шаблон: zbx_template_exim_mta.xml
Items (trappers): Mails Delivered, Mails Delivered Bytes, Mails Received, Mails Received Bytes; Mails Rejected, Mails Errors
Items (by agent): Mails in queue.
Triggers: More than 100 Mails in the Queue, More than 500 Mails in the Queue
Graphs: Exim Traffic, Exim Traffic Bytes
FreeBSD 10, Postfixadmin 2.3.7 для EXIM-а создает папки в с относительным именем.
Решение “в лоб”, правим файл create-mailbox.php:
else if ($CONF['domain_path'] == "YES")
{
if ($CONF['domain_in_mailbox'] == "YES")
{
// Было: $maildir = $fDomain . "/" . $fUsername . "/";
$maildir = "/var/mail/exim/".$fDomain . "/" . $fUsername . "/";
}
else
{
// Было: $maildir = $fDomain . "/" . escape_string (strtolower($_POST['fUsername'])) . "/";
$maildir = "/var/mail/exim/".$fDomain . "/" . escape_string (strtolower($_POST['fUsername'])) . "/";
}
}
FreeBSD 10.0
domain.com – имя внешнего домена
В DNS:
A – mx.domain.com
MX – mx.domain.com
A – mail.domain.com – для настройки клиентов у пользователей
CNAME – webmail.domain.com – для web-доступа пользователей
localhost.localdomain – имя хоста
В DNS:
CNAME mail.localdomain
Конфигурацию поднимаем с работающего ранее Exim 4.73.
Continue reading
OS: FreeBSD 8.2
Проблемы при запуске sa-update:
Обновление Perl c 5.12 на 5.16, плюс повторная установка LWP::Protocol
>cpan cpan> install LWP::Protocol
Копируем входящие и исходящие сообщения
В конфиге первым роутером (сразу после):
begin routers
Вставляем:
copy_message:
driver = redirect
unseen
data = [email protected]
Можно добавить условия
condition = ${if match{$sender_address}{<user1>|<user2>}{yes}{no} }
# Number of messages in queue exim -bpc # Посмотрим, что в очереди exim -bpu # Посмотрим, что в очереди в разрезе доменов exim -bp | exiqsumm # Толкнуть очередь exim -qf exim -qff # Толкнуть очередь c отладкой (-v) exim -q -v # Поиск к очереди по отправителю exiqgrep -f [email protected] # Поиск к очереди по получателю exiqgrep -r [email protected] # Очистка очереди от замороженных сообщений: exipick -zi | xargs exim -Mrm exiqgrep -zi | xargs exim -Mrm # full clear queue exipick -i | xargs exim -Mrm exiqgrep -i -r | xargs exim -Mrm # Удалить сообщение из очереди exim -Mrm {MESSAGE-ID} # Remove all messages from <[email protected]> exiqgrep -i -f <[email protected]> | xargs exim -Mrm # Удаление из очереди писем содержащих "domain.com" в отправителе ИЛИ получателе exim -bpr | grep "domain.com" | awk '{print $3}' | xargs exim -Mrm # Удаление из очереди писем от/на ПУСТОЙ адреса exim -bpr | grep "<>" | awk '{print $3}' | xargs exim -Mrm # ----- Commands for Message # show header exim -Mvh {MESSAGE-ID} # show body exim -Mvb {MESSAGE-ID} # show log exim -Mvl {MESSAGE-ID} # Тестирование маршрута доставки # Внешний получатель exim -bt [email protected] # А так получится локальный. Очень полезный результат: exim -bt root # Проверка правил повтора exim -brt [адрес отправителя]
Вывести на стандартный вывод номер версии, используемые библиотеки, модули, драйверы, а также проверить корректность конфига:
exim -bV
Вывести все конфигурационные опции:
exim -bP