Ранее мы рассказывали о том, как пользователи и администраторы Carbonio могут создавать почтовые правила на уровне конкретных учетных записей. Но нередко возникает задача по настройке глобальных почтовых фильтров. Например таких, которые добавляют предупреждение о том, что полученное письмо отправлено с внешнего почтового адреса или наоборот, прямо запретить пользователям отправлять электронные письма на внешние адреса. Для этих целей в Carbonio используется встроенное решение Sieve, которое предоставляет администратору широчайшие возможности по настройке почтовых правил.
Данная инструкция подойдет как для пользователей коммерческой версии Carbonio, так и для пользователей бесплатной Carbonio Community Edition.
Для административного фильтрования писем в Carbonio используется Sieve. Это мощный инструмент, который позволяет администратору не только сортировать письма, но и редактировать их содержимое. Например, добавлять в заголовки различные предупреждения. По умолчанию функция добавления заголовков в письма при помощи Sieve в Carbonio выключена. Включить ее можно, например, для Класса обслуживания:
carbonio prov modifyCos default zimbraSieveEditHeaderEnabled TRUE
После того как она будет включена, можно добавить новое почтовое правило.
К примеру, почтовое правило, которое будет помечать соответствующими заголовками в исходном коде письма, а также словами в теме входящие письма из внешних почтовых доменов.
require ["editheader", "variables"];
if allof(
not address :domain :is ["from"] ["example.ru", "company.ru", "company.local"]
not header :contains "Subject" ["[External Email]"]
)
{
addheader "X-External-Domain" "This Message originated outside of mind.";
if header :matches "Subject" "*" {
set "subject" "${1}";
}
deleteheader "Subject";
addheader :last "Subject" "[External Email] ${subject}";
}
Также с помощью почтовых фильтров можно для пользователей домена ввести ограничения на отправку писем, разрешив отправлять их только на конкретные почтовые домены и конкретные почтовые адреса.
require ["discard"];
if allof(
address :domain :is ["from"] ["carbonio.local"],
not address :domain :is ["to"] ["carbonio.local"],
not address :is ["cc", "to"] ["info@company.local"]
)
{
discard;
stop;
}
В данном случае отправитель из домена carbonio.local, который попытается отправить электронное письмо на домен, отличный от домена carbonio.local, либо адреса info@company.local, не сможет этого сделать, так как его сообщение будет сразу же удалено.
В Carbonio имеется поддержка автоматического перенаправления писем. Для того, чтобы получатель таких писем мог различать перенаправленные автоматически от перенаправленных вручную, можно использовать Sieve.
Для этого нужно включить в Carbonio добавление заголовка X-Authenticated-User в письма. Делается это при помощи следующих команд
carbonio prov modifyConfig zimbraSmtpSendAddAuthenticatedUser TRUE
carbonio prov modifyConfig zimbraMtaSmtpdSaslAuthenticatedHeader yes
zmcontrol restart
Также в Sieve добавляется правило, которое на основании отсутствия в перенаправленном письме соответствующего заголовка перемещает его в папку для автоматически перенаправленной почты. Главное для администратора - позаботиться о наличии соответствующей папки у пользователей, для которых будет применяться соответствующее правило.
require ["fileinto"];
if allof(
address :is :domain ["from", "sender"] ["example.ru","company.ru","company.local"],
not exists ["X-Authenticated-User"]
)
{
fileinto "auto-forwarded";
stop;
}
Для использования почтовых правил, необходимо сохранить созданный скрипт для Sieve в файл и применить его на уровне пользователя, класса обслуживания, сервера или домена. При добавлении административного правила требуется указывать, когда именно создаваемое правило будет отрабатывать - перед или после применения пользовательских правил.
Для примера сохраним скрипт, добавляющий в письма заголовки, в файл /tmp/header_sieve.
Тогда его применение на разных уровнях, с условием, что он будет отрабатывать до применения пользовательских фильтров, будет осуществляться командами
cat /tmp/header_sieve |xargs -0 carbonio prov modifyAccount user@example.ru zimbraAdminSieveScriptBefore
cat /tmp/header_sieve |xargs -0 carbonio prov modifyCos default zimbraAdminSieveScriptBefore
cat /tmp/header_sieve |xargs -0 carbonio prov modifyDomain example.ru zimbraAdminSieveScriptBefore
cat /tmp/header_sieve |xargs -0 carbonio prov modifyServer mail.example.ru zimbraAdminSieveScriptBefore
Для того, чтобы фильтры Sieve применялись после применения пользовательских почтовых правил, используйте параметр zimbraAdminSieveScriptAfter
cat /tmp/header_sieve |xargs -0 carbonio prov modifyAccount user@example.ru zimbraAdminSieveScriptAfter
cat /tmp/header_sieve |xargs -0 carbonio prov modifyCos default zimbraAdminSieveScriptAfter
cat /tmp/header_sieve |xargs -0 carbonio prov modifyDomain example.ru zimbraAdminSieveScriptAfter
cat /tmp/header_sieve |xargs -0 carbonio prov modifyServer mail.example.ru zimbraAdminSieveScriptAfter
Для того, чтобы удалить добавленные правила, используйте пустую строку. Примеры:
carbonio prov modifyAccount user@example.ru zimbraAdminSieveScriptBefore ""
carbonio prov modifyAccount user@example.ru zimbraAdminSieveScriptAfter ""
Таким образом использование Sieve в Carbonio позволяет администраторам максимально автоматизировать процесс фильтрации почты, повысить степень информационной защищенности своего предприятия и сделать работу его сотрудников более эффективной.