Nemam sice tuseni o tom, jak je prijem mailu implementovany na serveru Centrum, ale da se predpokladat, ze prijem pomoci SMTP obstarava nejaky program, ktery maily pouze ulozi do fronty. Odtud se pak presouvaji do databaze - a teprve pri tomto presunu se zjisti, ze uzivateli pretekla quota. Co s tim? Neni jina moznost, nez poslat mail s chybou, protoze spojeni, po kterem by byvalo slo vratit status 552, jiz davno neexistuje. To je vsak pouze implementacni detail, mozna to tak opravdu je, mozna neni, na tom prilis nesejde. Existuji totiz minimalne dva duvody, proc odpoved 552 nic neresi...
Za prve, co kdyz dany mail prichazi vice adresatum na danem serveru? Nejprve prijde seznam RCPT-TO, tedy adresy, na ktere se ma dopis dorucit. Pritom jeste neni mozne detekovat preteceni quoty, nebot neni znamo, jak dlouhy mail bude. Pak se precte vlastni mail a muze dojit k tomu, ze nekterym adresatum se do schranky vejde, ale jednomu ne. Jak nyni vratit chybovou hodnotu? SMTP protokol bohuzel nedovoluje v tomto miste specifikovat chybu pouze pro nektere adresaty. Takze neni jina moznost, nez poslat nazpet automaticky generovany mail s popisem chyby.
A za druhe, coz je jeste zavaznejsi, odpoved 552 vubec nepomuze! Jestlize server vrati "552 quota exceeded", SMTP agent (klient), ktery se snazil mail na dany server poslat, stejne vygeneruje chybovy mail na adresu odesilatele puvodni zpravy. Do tohoto mailu napise, ze obdrzel chybovou odpoved 552. Takze mail odesilateli je poslan stejne, pouze je anglicky a odeslany z jineho mista.
Takze kritizovat je sice pekne, ale bylo by dobre si navrhy dobre promyslet a predstavit si vsechny nasledky. Ono totiz provozovat freemailovy server je mnohem slozitejsi, nez by se na prvni pohled mohlo zdat... ;-)
Martin Kacer.