Меню

Как настроить фильтры в зимбре

Как настроить фильтры в зимбре

Для администрирования Zimbra имеется прекрасный и функциональный веб-интерфейс. Вот только в нем нет средств автоматизации работы с учетными записями, списками рассылки и др. Что будете делать, если надо создать 100 (или 1500 как у нас) почтовых ящиков, алиасов, переименовать согласно новой политики организации 500 почтовых ящиков? В этом случае Вам помогут консольные инструменты Zimbra (они умеет делать очень многое, т.е. всё), ну и некоторые полезные скрипты.

Раньше в Zimbra OSE присутствовал инструмент Bulk Provisioning (массовое развертывание), он позволял создавать учетные записи по заранее подготовленным данным в формате csv. Сейчас его нет, да он и не нужен, т.к. существует гораздо более гибкий и мощный инструмент; его и надо использовать. Конечно же, все самое мощное доступно в виде консольных команд, но есть одна команда, заслуживающая Вашего особого внимания… Её название — zmprov, она является главным ключом к сокровищнице Zimbra, освоите её, остальное — дело техники. При внедрении новой системы нужно начинать с внимательного изучения руководства администратора, но, обычно, все оставляют это интересное (и полезное) занятие на потом. Предлагаю всё же бегло ознакомиться с официальной документацией Zimbra

Проблема с русскими символами

На различных сайтах и форумах, посвященных Zimbra, очень часто просят помочь с проблемами при использовании русских букв в атрибутах консольных команд. Ответ очевидный: «Да прочитайте же эту документацию». А там черным по белому написано, что если Вы используете символы, не входящие в набор ASCII (например, русские) в Zimbra CLI, то чтобы символы отображалось правильно, вы должны выполнить настройку локали перед запуском консольной команды. Например так:

Ещё там написано, что по умолчанию локаль учетной записи пользователя zimbra установлена в LANG=С. И это необходимо для правильного запуска служб ZCS. Настройки локали пользователя zimbra прописаны в /opt/zimbra/.bash_profile. Их можно временно закомментировать пока Вы работаете, только не забудьте вернуть обратно (а лучше просто делать настройку локали, как указано выше).

zmprov

Команда zmprov поможет выполнить любые задачи в Zimbra LDAP: она умеет создавать и изменять аккаунты, псевдонимы, домены, классы обслуживания, списки рассылки и календари ресурсов. Все операции вызываются через параметры командной строки, и каждая команда имеет длинное и сокращенное имя.
Синтаксис:

Полный перечень команд смотрите в руководстве администратора (ну или zmprov -h), там более сотни различных команд.
Вот несколько из них для примера:

Действие Название Сокращение Синтаксис и пример
Создать аккаунт createAccount ca ca [attribute1 value1 etc]
zmprov ca joe@domain.com test123 displayName JSmith
Создать псевдоним addAccountAlias aaa aaa
zmprov aaa joe@domain.com joe.smith@engr.domain.com
Изменить аккаунт modifyAccount ma ma [attribute1 value1 etc]
zmprov ma joe@domain.com zimbraAccountStatus maintenance
Сменить пароль setPassword sp sp zmprov sp joe@domain.com test321

Там же в руководстве администратора есть большое количество примеров использования zmprov.

Примеры скриптов

Рекомендую взять за основу идеи, изложенные в статье Bulk Provisioning .
Команда zmprov может принимать команды из файла (или стандартного ввода) в качестве входных данных. Создайте текстовый файл (например «commands.zmp») с командами для zmprov на каждой строке:

Затем передайте содержимое файла zmprov.
От пользователя zimbra:

В статье приводится простой пример на perl:

Данный скрипт (назовем его csv2zmprov.pl) на входе принимает файл csv с параметрами новых учетных записей и генерирует файл команд для zmprov. Создадим файл данных import.csv (вместо домена domain.com впишите свой):

Последовательность команд для создания учетных записей может быть такой:

Готово! Теперь, вооружившись списком всех возможных команд zmprov и образцами скриптов, Вы можете всё: создавать учетки (автоматически, без Вашего участия), синхронизировать данные о пользователях с внешними базами данных, управлять списками рассылок, проводить обслуживание сервера и почтовых ящиков… всё, что сможете придумать.

Источник



Как настроить фильтры в зимбре

Добрый день уважаемые читатели и гости блога pyatilistnik.org, сегодня мне хочется вам показать, каким образом вы можете настроить переадресацию на почтовом ящике Zimbra. Приведу пример использования данного действия, вы уходите в отпуск или у вас увольняется сотрудник и вы хотели бы его входящую почту перенаправить на другой электронный ящик сотрудника. Делается это для того, чтобы не оповещать клиентов о смене ящика, так как бизнес процесс уже построен.

Фильтры в Zimbra

С фильтрами, я вас уже знакомил, когда мы решали проблему со входящими письмами. Что такое фильтры — это механизм почтового сервера Zimbra, который позволяет определить правила управления для всей почты (Входящей или исходящей), в их задачи входит автоматическое распределение сообщений, по заранее настроенным правилам.

Переходим ваш почтовый ящик Zimbra. В самом верху, у вас будет вкладка «Настройки», далее выбираете пункт «Фильтры»

Для создания переадресации почты, вам необходимо создать новый фильтр. Нажимаем соответствующую кнопку. У фильтра вы обнаружите вот такие параметры:

  • Название
  • Соответствие условию — по сути это условие, на основании которого будет выполняться фильтрация писем.
  • Выполнить следующие действия — тут все понятно без описание, куда все завернуть.

Задаем для перенаправления писем условие. Название фильтра «Пересылка», в соответствиях выбираем, «Кому» «Содержит» «Значок @» (@ означает все письма, если нужно только конкретные то укажите адрес или домен). В действиях выберите «Перенаправить на адрес» и укажите нужный почтовый ящик.

Например, можно задать правило фильтра для выявления почтовых сообщений от непосредственного руководителя и перемещения их в папку под названием «От моего шефа» или для автоматического перемещения сообщений с определенного адреса в Корзину.

Фильтрация исходящих сообщений выполняется со следующими целями.

  • Сортировка сообщений, сохраненных в папке «Отправленные», по другим папкам.
  • Автоматическое присвоение тегов сообщениям.
  • Пересылка сообщений.
  • Пометка сообщений как прочитанных или флагом.
  • Отклонение сообщений.

Условия фильтра

Каждый фильтр — это правило с одним или несколькими условиями и целью. Каждое правило фильтра может содержать несколько условий. Например, если ваш руководитель отправляет вам почту с нескольких адресов, например nina.ivanova@firma.com или nina.ivanova23@yahoo.com, можно создать один фильтр с названием «Руководитель», который будет содержать два условия — по одному для каждого электронного адреса.

  • Определенные адреса в полях «От», «Кому» и «Копия» в заголовке сообщения электронной почты
  • слова или строки знаков в теме или теле письма;
  • наличие или отсутствие вложений;

все условия можно указать как отрицательные, добавив префикс «не». Например, можно указать сообщение, которое не содержит конкретного слова.

Можно объединить условия для поиска сообщений с более сложными характеристиками.

Параметры «Любое» и «Все»

Условия правила фильтра можно сгруппировать по принципу любое или все. Эти условия используются аналогично условиям поиска «AND» и «OR», описанным в разделе описания функции «Поиск», где условие любое используется как OR, а все — как AND.

Если при определении условий нового правила фильтра указать любое, то фильтроваться будет сообщение, соответствующее любому из условий. Если указать все, то для фильтрации сообщения должно применяться каждое условие, определенное в правиле фильтра.

Действия правила фильтра

В каждом правиле фильтра может быть определено одно или несколько действий, Действия могут быть следующими.

  • Оставить сообщение в папке «Входящие» (действие не выполняется).
  • Переместить сообщение в указанную папку.
  • Пометить сообщение тегом.
  • Пометить сообщение как прочитанное или флагом.
  • Отклонить сообщение. В результате этого действия сообщение «молча» отклоняется. Это действие не аналогично действию «Удалить». В результате удаления элемент перемещается в Корзину. В результате отклонения сообщение даже не дойдет до почтового ящика.
  • Переслать сообщение на другой адрес.

Действие Не обрабатывать дополнительные правила фильтров должно быть последним действием в каждом правиле фильтра. В результате этого действия прекращается применение каких-либо дополнительных правил фильтра к почтовым сообщениям, соответствующим текущему правилу. Если этого не указать, последующие правила фильтра будут применяться к сообщению даже при соответствии текущему фильтру. Возможно, не будет необходимости проверять одно и то же сообщение на соответствие нескольким правилам фильтра и подвергать его нескольким, возможно, взаимоисключающим действиям.

Когда применяются фильтры

Каждое входящее сообщение проверяется на соответствие правилам фильтра во время доставки почты, в это же время к соответствующим сообщениям применяются действия фильтра.

Правила фильтра можно также применить к существующему набору почтовых элементов. В настройках почтовых фильтров есть кнопка Запустить фильтр, с помощью которой можно выбрать несколько фильтров и применить их к указанным папкам почты.

Порядок фильтрации

Фильтры применяются в том порядке, в котором они перечислены в настройках почтовых фильтров. Порядок можно изменить.

Условия каждого фильтра используются для проверки каждого сообщения. Если сообщение соответствует всем условиям (любому или всем, в зависимости от того, как определено в правиле фильтра), тогда оно считается соответствующим заданному критерию. Порядок условий в каждом фильтре не имеет значения.

Если сообщение соответствует условиям, к нему применяются все действия, связанные с этим фильтром, в том порядке, в каком они установлены в фильтре.

Источник

Экспериментальный блог

Когда-то создал ради пробы. Потом решил так и оставить.

Официальная возможность получить лицензионный софт бесплатно.

Это не реклама!

вторник, 8 сентября 2015 г.

Zimbra: грамотно работаем с фильтрами сообщений в веб-клиенте и в командной строке

Содержание: как правильно экспортировать и импортировать фильтры обработки сообщений из учетных записей зимбры.

Веб-интерфейс позволяет создавать фильтры для обработки сообщений. Они сохраняются в параметре zimbraMailSieveScript.

$ zmprov ga учетка zimbramailsievescript

zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# только от диспетчеров
if allof (not address :all :contains :comparator «i;ascii-casemap» [«from»] «диспетчер@мой-домен») <
fileinto «Inbox/ошибка отправителя»;
stop;
>

# test-forwards
if anyof (address :localpart :contains :comparator «i;ascii-casemap» [«to»,»cc»] «+sms»,
header :contains [«subject»] «sms:»,
header :contains [«subject»] «+sms»,
header :contains [«subject»] «смс:»,
header :contains [«subject»] «+смс») <
redirect «номер@sms.megafondv.ru»;
redirect «адрес@домен»;
redirect «псевдоним@sms.megafondv.ru»;
keep;
stop;
>

В менее человеческом виде этот скрипт показывает команда

zmmailbox -m аккаунт -A -z gfrl

Сложность в том, что в локали «С», используемой зимброй, есть проблемы с кириллицей, из-за чего красиво выглядящий скипт с русскими словами при импорте превращается в кашу.

Решение простое: выполняем эти операции из-под рута, указывая полный путь к скрипту и полные пути к используемым бинарникам.

1. делаем экспорт из-под зимбры или из-под рута — не важно, экспортируется правильно, в текущей системной кодировке (у меня это UTF-8)

# регистр в названии параметра не важен, можно написать и zimbramailsievescript
# я принципиально добавляю к скриптам оболочки расширение sh, чтобы самому было понятно. Разумеется, другие не обязаны следовать этому правилу.

/opt/bin/zmprov ga учетка zimbraMailSieveScript>имя-скрипта.sh

2. поскольку управляющие программы зимбры не воспринимают конвейеры, то передать им текст через перенаправление нельзя. Значит будем делать из говна конфетку из мухи слона из сценария фильтра сценарий оболочки

chmod +x имя-скрипта.sh

Любым редактором правим этот файл, я предпочитаю mcedit. Убираем красное, добавляем зеленое

/opt/zimbra/bin/zmprov ga $1 zimbraMailSieveScript
# name учетка
/opt/zimbra/bin/zmprov ma $1 zimbraMailSieveScript : ‘ require [«fileinto», «reject», «tag», «flag»];

# имя фильтра
if anyof (address :localpart :contains :comparator «i;ascii-casemap» [«to»,»cc»] «+sms»,
.
> ‘
/opt/zimbra/bin/zmprov ga $1 zimbraMailSieveScript

Кусок скрипта вырезан, чтобы не загромождать пример. Особое внимание на два зеленых апострофа вокруг текста экспортированного скрипта — выделяем ими длинную строку от «require» до закрывающей фигурной скобки.

Для красоты и удобства, особенно если фильтр требуется применить к нескольким учеткам, подставляем вместо имени учётки переменную, и дважды — до и после операции — выводим состояние параметра zimbraMailSieveScript.

3. Полученный сценарий выполняем из-под рута! Исполнение из-под зимбры приведёт к к тому, что вся кириллица похерится.

Вот пример. Создаем простенький бурчащий фильтр 🙂

$ zmprov ga учётка zimbramailsievescript
# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>

root@host:/opt/zimbra/bin# ./zmprov ga учётка zimbramailsievescript
# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>
Как видно, оба экспорта идентичны. А теперь попробуем импортировать (текст правим, как я писал выше).

$ cat bur.sh
# показать текущее состояние
/opt/zimbra/bin/zmprov ga $1 zimbramailsievescript
# очистить для верности
/opt/zimbra/bin/zmprov ma $1 zimbramailsievescript «»
# обновляем
/opt/zimbra/bin/zmprov ma $1 zimbramailsievescript ‘require [«fileinto», «reject», «tag», «flag»];

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>’

/opt/zimbra/bin/zmprov ga $1 zimbramailsievescript
Запуск под зимброй:

$ /tmp/bur.sh учётка
# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>

# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# ������bur
if anyof (header :contains [«subject»] «bur������») <
keep;
stop;
>

Теперь тот же скрипт из-под рута (не буду вычищать то, что наделалось при предыдущем импорте — пусть меняется неправильный фильтр):

root@host:/tmp# ./bur.sh учётка
# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# . bur
if anyof (header :contains [«subject»] «bur. «) <
keep;
stop;
>

# name учётка@домен
zimbraMailSieveScript: require [«fileinto», «reject», «tag», «flag»];

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>
Результирующий скриншот не привожу, он совпадает с первым.

На сладкое. В менее наглядной форме с фильтрами позволяет работать zmmailbox. Если zmprov может импортировать только набор фильтров целиком (каждый фильтр начинается с комментария со своим именем, синтаксис можно найти в интернетах, пример — в самом первом листинге этой статьи: два фильтра «только от диспетчеров» и «test-forwards»), то zmmailbox позволяет работать с отдельными фильтрами. К сожалению, способа работать с отдельными правилами в пределах фильтра я не нашел, поэтому, если надо изменить одно правило, делаем экспорт фильтра, меняем в его тексте нужное правило, импортируем обратно. Параметры и ключи CLI zmmailbox — в манах и интернетах.

Вот как выглядит «бурбур» в исполнении zmmailbox:

$ zmmailbox -m учётка -A -z gfrl
«бурbur» active any header «subject» contains «burбур» keep stop

название фильтра
состояние (active/inactive)
условия
действия

edit: для отключения фильтра через SieveScript (соответствует inactive для gfrl) надо в начале текста добавить «disabled_»:

# бурbur
if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>

# бурbur
disabled_if anyof (header :contains [«subject»] «burбур») <
keep;
stop;
>

Источник

Как настроить фильтры в зимбре

Работа с фильтрами электронной почты

Можно определить фильтры для управления входящими и исходящими сообщениями электронной почты, включая сообщения, связанные с ежедневником, а также установить фильтр потока действий для управления менее важными сообщениями. Фильтр состоит из одного или нескольких условий и одного или нескольких действий. Условие может быть связано с темой, конкретным отправителем или сообщениями за определенную дату. Если сообщение соответствует условиям, выполняются указанные действия.

Можно создавать фильтры для выполнения перечисленных ниже действий.

• Сортировка входящих сообщений по папкам. Например, все сообщения электронной почты от начальника при получении автоматически перемещаются в папку «Указания руководства».

• Присвоение сообщениям меток. Например, сообщения из списка рассылки «Корпоративные события» помечаются меткой «События».

• Пересылка или удаление сообщений. Например, все сообщения электронной почты, получаемые с определенного адреса электронной почты, перемещаются в папку «Корзина».

• Сортировка отправленных сообщений по отдельным тематическим папкам.

• Указание важности сообщений с помощью флагов.

Фильтры применяются в том порядке, в котором они указаны. Порядок можно в любое время изменить.

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

Установка правил фильтра

Правило фильтра состоит из одного или нескольких условий и одного или нескольких действий. Если сообщение соответствует условиям, выполняются указанные действия.

Также можно устанавливать правила потока действий. Правила потока действий устанавливаются для того, чтобы перемещать менее важные сообщения из папки «Входящие» в папку «Поток действий», которую можно проверять в удобное для этого время.

Источник

Читайте также:  Как настроить фм модулятор мистери