james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Serge Knystautas <ser...@lokitech.com>
Subject Re: Stroage Quota - need advice
Date Mon, 03 Jun 2002 13:08:48 GMT
The original design goal stemmed from the fact that providing error 
messages during delivery would expose sensitive information about your 
mail server.  For a spammer, if you tell me that mailbox is full, I know 
I've just confirmed the validity of my email address.

That said, a mailbox quota is a good example of when you might want to 
block the message before reception.  But... this isn't nearly as easy as 
it sounds.  Say I have 12 aliases mapped to my mailbox, 3 coming from 
static mappings in conf and 9 coming from some database table.  It'd be 
a nightmare to try to get the SMTP handler code to know all those 
aliases point to my mailbox.  You'd more than likely only block my base 
email address, and then all the aliases would still get stuck in James' 
spool.

So, I think the accept first, ask questions later still is the best 
approach.  It can handle any and all address mappings, and it allows for 
various actions when a condition like a exceeding quota is met.
-- 
Serge Knystautas
Loki Technologies - Unstoppable Websites
http://www.lokitech.com

Noel J. Bergman wrote:
> I presume that you would want SMTPHandler to return a 452 error.
> 
> One issue is that James really tries to be asynchronous in processing.  As I
> pointed out earlier, the ConnectionHandler is the only part of James that
> really follows a request-response model.  When SMTPHandler calls
> MailServer.sendMail(), it is done (from the perspective of the sender), but
> that is when processing actually begins.  This effectively hinders James
> from returning certain classes of error codes, e.g., an over quota error for
> a user, or relaying not allowed.
> 
> If MailServer.sendMail() were synchronous, it would act as a natural (but
> still scalable) throttle, enable additional responses, and allow the
> components of the processing chain to participate in the request-response
> model.
> 
> I presume that these issues were considered when when James' processing
> model was designed, so I'm keen to hear from Serge.
> 
> 	--- Noel
> 
> -----Original Message-----
> From: Andrei Ivanov [mailto:myfam@surfeu.fi]
> Sent: Monday, June 03, 2002 5:13
> To: James Developers List
> Subject: Re: Stroage Quota - need advice
> 
> 
> Hi,
> thank you guys for advices, but I was thinking about slightly different
> thing.
> Of course a mailet can be implemented to check quotas etc.
> But this mean that before a user quota is to be checked mail will still get
> to spool.  And this is what my primary concern is about.
> After improving SMTPHandler I was able to "pump" James with mails so that,
> after "pumping" stooped it takes time for James to process all mails it has
> received. If pumping continues you know what happens :-)
> My opinion is that regardless of per user quota there should be a global
> parameter which sets total number of messages can be handled by
> JamesSpoolManager. And if this number is exceeded, SMTPserver shall just
> stop handle new connections before spool is emptied enough.
> Andrei


--
To unsubscribe, e-mail:   <mailto:james-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:james-dev-help@jakarta.apache.org>


Mime
View raw message