LINUX.ORG.RU
ФорумAdmin

postfix помещает отлуп о превышении квоты получателя в очередь

 , ,


0

2

Здравствуйте!

Столкнулся со следующей проблемой. Есть 2 почтовых сервера postfix 2.11.3 + dovecot 2.2.15 (mail1.dom1.lan1 и mail2.dom2.lan2). Настроена пересылка почты между ними. На обоих серверах для почтовых ящиков настроена индивидуальная квота (mysql).

Все прекрасно работает до тех пор, пока какой-нибудь ящик не достигнет квоты. И тогда при попытке доставки письма в такой ящик, письмо до получателя не доходит, а отлуп для отправителя помещается в очередь.

Например, user1@dom1.lan1 отправляет письмо пользователю user2@dom2.lan2, у которого достигнут предел квоты.

На сервере mail2.dom2.lan2 в логе остается запись:

Dec  3 14:56:49 mail2 postfix/smtpd[3947]: NOQUEUE: reject: RCPT from mail1[ip1.ip1.ip1.ip1]: 452 4.7.1 <user2@dom2.lan2>: Recipient address rejected: Mailbox is over quota; from=<user1@dom1.lan1> to=<user2@dom2.lan2> proto=ESMTP helo=<mail1.dom1.lan1>

На сервере mail1.dom1.lan1 в логе остается запись:

Dec  3 14:56:49 mail1 postfix/qmgr[4245]: 1F35175912: from=<user1@dom1.lan1>, size=3097, nrcpt=1 (queue active)
Dec  3 14:56:49 mail1 postfix/smtp[4343]: 1F35175912: to=<user2@dom2.lan2>, relay=mail2.dom2.lan2[ip2.ip2.ip2.ip2]:25, delay=953, de
lays=952/0.08/0.05/0.06, dsn=4.7.1, status=deferred (host mail2.dom2.lan2[ip2.ip2.ip2.ip2] said: 452 4.7.1 <user2@dom2.lan2>: Recip
ient address rejected: Mailbox is over quota (in reply to RCPT TO command))
На сервере mail2.dom2.lan2 postfix проверяет квоту ящика. В main.cf:
smtpd_recipient_restrictions = check_recipient_access mysql:/usr/local/etc/postfix/quotas.cf
В quotas.cf:
hosts = localhost
user = name
password = secret
dbname = databasename
query = SELECT '452 Mailbox is over quota' FROM mailbox, quota2 WHERE (mailbox.username = '%s') AND (quota2.username = '%s') AND (quota2.bytes >= mailbox.quota) AND (mailbox.quota > 0)
В итоге выходит, что проверка квоты ящика получателя выполняется, письмо получателю не доставляется (превышена квота), отлуп отправителю формируется, но не доставляется (помещается в очередь). Почему так происходит, понять не могу. Есть предположение, что после формирования отлупа сервер не знает, кому его доставить. Т.е. адрес получателя отлупа должен быть адресом отправителя письма, а этого видимо не происходит. Но как это проверить? Буду рад, если знающие люди подскажут, где здесь ошибка. Спасибо!

Ну так ты выдаешь клиенту ошибку 452 - это означает что ящик *временно* недоступен, поэтому никакого отлупа послано не будет, письмо упадёт в очередь и пролежит там сколько-то времени пока не протухнет, сервер будет пытаться его доставить еще и еще - может у клиента ящик вдруг освободится? Потом только он пришлет отлуп что очень старался, но ни шмог.

Так что поменяй код на 552 (который как раз Requested mail action aborted: exceeded storage allocation) и отлуп будет сразу.

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

Спасибо, добрый человек! Я не вкурил тему кодов. Заработало!

citmen ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.