URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 60505
[ Назад ]

Исходное сообщение
"Exim 4.50+quote_warn_message"

Отправлено astenax , 30-Сен-05 07:27 
Добрый день!

Кто-нибудь сталкивался с такими вот задачами:

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 сервере или БД?


Содержание

Сообщения в этом обсуждении
"Exim 4.50+quote_warn_message"
Отправлено SubGun , 30-Сен-05 10:22 
Для 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 4.50+quote_warn_message"
Отправлено astenax , 30-Сен-05 11:15 
>Для 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.


"Exim 4.50+quote_warn_message"
Отправлено SubGun , 30-Сен-05 13:26 
В таком случае, если делать криво(на первое время), то прям в тексте warnmsg вызывай значение из LDAP.

"Exim 4.50+quote_warn_message"
Отправлено astenax , 30-Сен-05 13:56 
>В таком случае, если делать криво(на первое время), то прям в тексте
>warnmsg вызывай значение из LDAP.

:) Решил зайти с другой строны. Т.к. строка, которая приходит от сервера, достаточно большая, то я просто вырезаю нужную мне часть командой substr_n_n.


"Exim 4.50+quote_warn_message"
Отправлено SubGun , 30-Сен-05 10:25 
Точнее правильнее так:
quota = ${lookup mysql{SELECT quota FROM user WHERE user='${local_part}' AND domain='${domain}'}}