- Матеріал з Xgu.ru
- [ правити ] Використання квот файлової системи
- [ правити ] Використання локального агента доставки
Матеріал з Xgu.ru
Дана сторінка знаходиться в розробці .Ця сторінка ще не закінчена. Інформація, представлена тут, може виявитися неповною або неправильною.
Якщо ви вважаєте, що її варто було б доопрацювати якомога швидше, будь ласка, скажіть про це .
Короткий URL: mail / quota
Обмеження розміру поштової скриньки користувача (поштова квота) - механізм, що дозволяє відмовляти в прийомі поштового повідомлення користувачу, якщо сумарний обсяг листів, що знаходяться в поштовій скриньці, перевищив заданий.
Завдання створення поштових обмежень стоїть особливо гостро в разі, коли повідомлення користувача зберігаються на поштовому сервері не тільки до їх прочитання користувачем (як прийнято при використанні протоколу POP3 ), А весь час (як прийнято при використанні протоколу IMAP4 ).
Коли сумарний обсяг листів, що знаходяться в поштовій скриньці користувача, перевищить деяке значення, нові повідомлення для цього користувача вже не повинні прийматися, а відправникам ці повідомлень має надсилатися у відповідь повідомлення з інформацією про те, що поштова скринька користувача переповнений, і пошта йому доставлена бути не може.
Існує три основних способи вирішення завдання:
- Використання механізму квот файлової системи, що дозволяє обмежувати сумарний обсяг файлів користувача;
- Використання подтомов (subvolumes) в таких файлових системах як ZFS і btrfs ;
- Використання обмежень засобами агента локальної доставки (LDA).
Перший і другий метод фактично перекладають вирішення завдання на плечі файлової системи, використовуючи певний її засіб обмеження виділяється простору, будь-то стандартний механізму квот або більш розвинений механізм новий створення подтомов.
Третій метод змушує агент доставки піклується про те, скільки пошти користувач прийняв, і дозволяти або забороняти йому доставку нового повідомлення. Цей спосіб складніший в порівнянні з першими двома, але він і більш універсальний:
- по-перше, він працює незалежно від можливостей файлової системи, на якій знаходиться сховище;
- по-друге, з його допомогою можна обмежувати прийом пошти не тільки на основі інформації про обсязі поточного поштової скриньки, а грунтуючись на абсолютно довільних критеріях;
- по-третє, спосіб дозволяє урізноманітнити реакцію на переповнення ящика - можна формувати якісь завгодно реакції, починаючи, відсиланням красивого повідомлення відправнику (такого повідомлення, яке він зможе зрозуміти, а не просто говорити "у вас пошта не працює"), і закінчуючи відсиланням в джаббер одержувача інформації, що до нього в поштову скриньку намагалося потрапити ще один лист, і навіть потрапило б, якби скриньку не був переповнений.
[ правити ] Використання квот файлової системи
[ правити ] Використання подтомов
[ правити ] Використання локального агента доставки
Кінцева доставка пошти виконується користувачеві за допомогою агента локальної доставки, LDA (local delivery agent). Зазвичай в якості цього агента використовується вбудований в Sendmail агент mail.local. Квотування пошти особливо зручно здійснювати при використанні procmail як LDA (хоча і mail.local є можливість відправляти повідомлення про помилку при перевищенні ліміту).
Приклад конфігурації для procmail [1] :
NL = "" LOG = "==================== $ {NL}" QUOTA = 3042880 DROPPRIVS = yes LOG = "QUOTA: $ QUOTA $ {NL}" ## David W. Tamkin <[email protected]> ## Recommendation to use: 0i from Leow Hock Seng on 25 Apr 2005: Додати 0i INBOXSIZE = | set - `ls -l $ DEFAULT`; echo $ 5 LOG = "INBOXSIZE: $ INBOXSIZE $ {NL}": 0 * $ - $ {INBOXSIZE} ^ 0 * $ $ {QUOTA} ^ 0 {MAXMSG = $ = LOG = "MAXMSG: $ MAXMSG $ {NL}" : 0 * $> $ {MAXMSG} {LOG = "Bouncing (message too big!) $ {NL}" EXITCODE = 69 HOST}}: 0E {LOG = "Bouncing (inbox already full!) $ {NL}" EXITCODE = 69 HOST}