Добрый день!Кто-нибудь сталкивался с такими вот задачами:
1. В Exim 4.50 есть настройка пользовательских квот для почтовых ящиков:
<skip>
quota = LDAP_QUOTA_LOOKUP
quota_warn_threshold=100%
quota_warn_message ="\
To: $local_part@$domain\n\
Subject: Quota of your mailbox\n\n\
This message is automatically created \
by mail delivery software. \n\n\
The size of your mailbox has exceeded \
a warning threshold that is\n\
set by the system administrator.\n\n\n\"
maildir_format = true
user = virtuser
<skip>Работает все отлично. Но есть одно "но": необходимо вставить в текст письма текущую квоту пользователя получаемую с сервера LDAP или MySQL. Перечитал всю документацию на сайте www.exim.org и все равно не понял, как именно можно вставить полученную авторизационную информацию в письмо-предупреждение. Все время получаю сообщение об ошибке следующего содержания:
"extra characters follow string value for quota_warn_message"Чувствую, что все делаеться легко, но как именно - пока не понял.
2. Как можно ограничить рассылку таких вот предупредительных писем об исчерпании квоты на основании какого-либо хранилища данных: БД, текстового файла... Т.е. что бы такие письма получали/не получали только определенные люди согласно какому-нибудь признаку в LDAP сервере или БД?
Для MySQL, на мой взгляд, это звучало бы так:
<skip>
quota = ${lookup mysql{SELECT quota FROM user WHERE user='${local_part}'}}
quota_warn_threshold=100%
quota_warn_message ="\
To: $local_part@$domain\n\
Subject: Quota of your mailbox\n\n\
This message is automatically created \
by mail delivery software. \n\n\
The size of your mailbox($quota) has exceeded \
a warning threshold that is\n\
set by the system administrator.\n\n\n\"
maildir_format = true
user = virtuser
<skip>Вот кажись так. Для LDAP переделаешь запрос.
>Для MySQL, на мой взгляд, это звучало бы так:
><skip>
> quota = ${lookup mysql{SELECT
>quota FROM user WHERE user='${local_part}'}}
> quota_warn_threshold=100%
> quota_warn_message ="\
> To: $local_part@$domain\n\
> Subject: Quota of your
>mailbox\n\n\
> This message is automatically
>created \
> by mail delivery software.
>\n\n\
> The size of your
>mailbox($quota) has exceeded \
> a warning threshold that
>is\n\
> set by the system
>administrator.\n\n\n\"
> maildir_format = true
> user = virtuser
><skip>
>
>Вот кажись так. Для LDAP переделаешь запрос.Неа. Такой вариант я продел самым первым :) Дело в том, что Exim не видит такой переменной, как $quota. Он ее просто не знает:
{$quota}" (warning message for virt_mailboxes transport): unknown variable name "quota"Сейчас пытаюсь воспользоваться командой extract.
В таком случае, если делать криво(на первое время), то прям в тексте warnmsg вызывай значение из LDAP.
>В таком случае, если делать криво(на первое время), то прям в тексте
>warnmsg вызывай значение из LDAP.:) Решил зайти с другой строны. Т.к. строка, которая приходит от сервера, достаточно большая, то я просто вырезаю нужную мне часть командой substr_n_n.
Точнее правильнее так:
quota = ${lookup mysql{SELECT quota FROM user WHERE user='${local_part}' AND domain='${domain}'}}