EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-14 17:29:55
Прочитал документацию, сделал свой первый системный фильтр.
Код: Выделить всё
# Exim filter
if error_message then finish endif # Не отправляем рикошеты
# Копируем исходящую почту от этих отправителей
if $sender_address: match "(user1|user2)@mydomain.ru" or
# Копируем входящую почту для этих получателей
$recipients: match "(user1|user2)@mydomain.ru"
then
unseen deliver admin@mydomain.ru # Копируем на этот адрес
endif
Он
работает, только при проверке вылезает это:
Код: Выделить всё
exim -bf exim-filter.conf < message
..
..
Filter error: failed to expand "$recipients" in filter file: unknown variable name "recipients"
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-06-14 18:53:32
а вот х.з...
может надо до кучи задать этих самых получателей, с командной строки?
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-16 0:14:09
Хороший пример, как раз сам сейчас озадачен подобной проблемой.
Доп. вопросы:
1. # Не отправляем рикошеты
if error_message then finish endif
Что есть "рикошеты"?
2. Как правильно указывать не выборочные аккаунты а весь домен - "@mydomain.ru"?
3. Какое правило добавить, что бы не только "Копируем исходящую почту от этих отправителей", но и этим получателям (нужно указать домены)?
4. Тоже самое для входящей - нужно указать домены отправителей.
Marquez
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-16 9:48:44
Marquez писал(а):1. # Не отправляем рикошеты
if error_message then finish endif
Что есть "рикошеты"?
Читать
доку
2. Как правильно указывать не выборочные аккаунты а весь домен - "@mydomain.ru"?
Ну да, именно так, только если pcre использоваться не будет можно использовать contains вместо match.
3. Какое правило добавить, что бы не только "Копируем исходящую почту от этих отправителей", но и этим получателям (нужно указать домены)?
Код: Выделить всё
# Копируем исходящую почту от этих отправителей
if $sender_address: match "(user1|user2)@mydomain.ru" and
# Копируем входящую почту для этих получателей
$recipients: match "(@mydomain1.ru|@mydomain2.ru|@mydomain3.ru)"
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-18 7:57:44
Отлично
А исключение как оформить? К примеру, выбрал я домен, но хочу исключить пару адресов из выборки.
Marquez
-
Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-06-18 7:58:36
вложенным условием
Убей их всех! Бог потом рассортирует...
Alex Keda
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-18 8:10:34
Marquez писал(а):Отлично
А исключение как оформить? К примеру, выбрал я домен, но хочу исключить пару адресов из выборки.
А я пока не дорос.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-18 8:20:58
Может так:
if
$recipients: match "(@mydomain1.ru|@mydomain2.ru|@mydomain3.ru)"
and
$recipients: match "(
^anna@mydomain1.ru|
sveta@2.ru)"
then...
^ - знак исключения, я не напутал? Т.е. выборка идёт по трем доменам (для примера) с исключением двух конкретных адресов.
Marquez
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-18 8:52:53
^ - знак начала, а не исключения. Причём у меня работать отказывался.
Прочитал за тебя доку(ссылка выше)
Код: Выделить всё
Условию может предшествовать “not”, для его отрицания, и, также, есть некоторые отрицательные формы условия, которые более похожи на английский язык.
И отрицание должно делаться так:
В итоге должно получиться примерно следующее:
Код: Выделить всё
if
$recipients: match "(@mydomain1.ru|@mydomain2.ru|@mydomain3.ru)"
and
$recipients: not match "(anna@mydomain1.ru|sveta@2.ru)"
then...
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-18 10:01:54
Хм. Добавил строку, убивающую рикошеты и ещё парочку в правила. Перестала ходить почта. Не знаю из-за какой строки именно, но до вечера, откатился назад, до выяснения. Если закомментировать рикошеты и две строки, начинающиеся с "and" - всё работает. Листинг файла:
# Exim filter
#Ne otpravlyaem rikoshety
if error_message
then
finish
endif
if ${mask:$sender_host_address/24} is 192.168.0.0/24
and
$recipients: match "(@domain1.ru|@domain2.ru)"
then
unseen deliver
out@mydomain.ru
endif
if
$recipients: match "@mydomain.ru"
and
$recipients: not match "
postmaster@mydomain.ru"
then
unseen deliver
in@mydomain.ru
endif
Marquez
-
Гость
- проходил мимо
Непрочитанное сообщение
Гость » 2007-06-18 15:04:09
В общем, всё ОК. Только не просто not match, а does not match.
Гость
-
Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-06-18 15:13:21
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Гость
- проходил мимо
Непрочитанное сообщение
Гость » 2007-06-18 15:19:15
lissyara писал(а):хорошая кнопочка:
Код: Выделить всё
[/quote]
Буду иметь в виду :) Кстати, на такой сервис от exim не стоит надеяться? (может что дополнительно прикрутить?) Отправитель высылает письмо на определенный домен, но пока ответсвенное лицо не ознакомилось с текстом письма и не дало добро (в виде отправки какого-ли бо текста на спец ящик, я фантазирую :D ), письмо никуда не уходит.
P.S. lissyara, на какой адрес пиво высылать? :P
Гость
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-18 16:57:46
Anonymous писал(а):В общем, всё ОК. Только не просто not match, а does not match.
:-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-06-18 16:58:49
Anonymous писал(а):Отправитель высылает письмо на определенный домен, но пока ответсвенное лицо не ознакомилось с текстом письма и не дало добро (в виде отправки какого-ли бо текста на спец ящик, я фантазирую
), письмо никуда не уходит.
А по русски?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-19 7:57:22
А по русски?
Куда уж более. При отправке почты на определенный список адресов, письма не уходят пока ответсвенное лицо (руководство, безопасность - не важно) не ознакомились с ними и не дали виртуальное добро в виде каких-либо действий с почтой (фантазия - отсылка "1" для разрешения на определенный адрес). В любом случая, я сомневаюсь, что exim это сможет реализовать.
Marquez
-
Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-06-19 12:47:42
тока внешним скриптом, которой на рас крутится к экзиму.
пишется такой скрипт тоже с полпинка.
========
тока ты не напишешь, т.к. документацию не читаешь, а выдвигаешь предположения
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-06-19 16:12:53
lissyara писал(а):тока внешним скриптом, которой на рас крутится к экзиму.
пишется такой скрипт тоже с полпинка.
========
тока ты не напишешь, т.к. документацию не читаешь, а выдвигаешь предположения
Намёк понят
Marquez
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-07-17 11:50:26
В продолжение темы. Решил сделать правило: все отлупы от сторонних серверов и своего (неверный адрес и прочее) посылать копией на отдельный ящик. Как правило подобные письма приходят с адресов типа "Mailer-Daemon@". Правило:
Код: Выделить всё
if
$sender_address: match "mailer-daemon"
then
unseen deliver test@domain.ru
endif
Не работат. Что может быть не так?
Marquez
-
Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-07-17 12:00:09
неправильно. лучше смотри на путь возврата - он пустой должен быть.
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Marquez
- рядовой
- Сообщения: 20
- Зарегистрирован: 2007-06-16 0:03:29
Непрочитанное сообщение
Marquez » 2007-07-17 12:26:41
lissyara писал(а):неправильно. лучше смотри на путь возврата - он пустой должен быть.
Почему неправильно, вот это мне непонятно...
Т.е. предлагаете сделать так:
Код: Выделить всё
if
[b]$Return-path: match ""[/b]
then
unseen deliver test@domain.ru
endif
"Пустой" каким образом обозначается?
Marquez