Hello Alman,

James so far have no component leveraging throtling.

You will need to implement your own. I think combining a mailet +
requeing with delays when the throttling is exceeded looks like the best
way to go.

Here is a contribution (that ended up not being merged) on the topic.
https://github.com/linagora/james-project/pull/1742

Also let's be in for the usual FileMailQueue disclaimer:

https://github.com/apache/james-project/blob/master/server/queue/queue-file/src/test/java/org/apache/james/queue/file/FileCacheableMailQueueTest.java

FileMailQueue is an outdated unmaintained component suffering incomplete
features and is not thread safe
This includes:
 - JAMES-2298 Unsupported remove management feature
 - JAMES-2954 Incomplete browse implementation
 - JAMES-2544 Mixing concurrent operation might lead to a deadlock and
missing fields
 - JAMES-2979 dequeue is not thread safe

Use it at your own risks. I would suggest the ActiveMQ one, which is safer.

Cheers,

Benoit

Le 29/03/2021 à 17:54, Amlan Sengupta a écrit :
> Hello,
> 
> Apache James : 3.5.0
> 
> I have a non functional requirement which I am trying to implement through 
> Apache James which is “ A maximum of ( very low number ) emails per hour is 
> allowed ”. I am currently using the default FileMailQueue approach while 
> trying  to adhere to ( very low number ) emails per hour requirement. I have 
> configured the following
> 
> CONNECTION_LIMIT : Set the maximum simultaneous incoming connections for this 
> MTA service : 10
> CONNECTION_LIMIT_PERIP : Set the maximum simultaneous incoming connections 
> per IP for this MTA service : 10
> DELIVERY_THREADS : The number of threads that should be trying to deliver 
> outgoing messages : 10
> SPOOL_THREADS : This is a required positive integer element. It specifies the 
> number of threads the SpoolManager will use to process messages in the spool. 
> This parameter tends to substantially impact performance, so it is advisable 
> to tune it in production configurations. : 30
> 
> This meets my email per hour allowed requirement, but the functional 
> component can peak at 216 emails / s so we get lost emails.
> 
> When the following is done,
> 
> CONNECTION_LIMIT : Set the maximum simultaneous incoming connections for this 
> MTA service : 20
> CONNECTION_LIMIT_PERIP : Set the maximum simultaneous incoming connections 
> per IP for this MTA service : 20
> DELIVERY_THREADS : The number of threads that should be trying to deliver 
> outgoing messages : 10
> SPOOL_THREADS : This is a required positive integer element. It specifies the 
> number of threads the SpoolManager will use to process messages in the spool. 
> This parameter tends to substantially impact performance, so it is advisable 
> to tune it in production configurations. : 30
> 
> We are blowing the emails per hour limit.
> 
> So the question is, do I need to do any custom queueing ? or configuration to 
> enable throttling ?
> 
> Amlan.
> 
> 
> 
> 
> ---
> This e-mail may contain confidential and/or privileged information. If you 
> are not the intended recipient (or have received this e-mail in error) please 
> notify the sender immediately and delete this e-mail. Any unauthorized 
> copying, disclosure or distribution of the material in this e-mail is 
> strictly forbidden.
> 
> Please refer to https://www.db.com/disclosures for additional EU corporate 
> and regulatory disclosures and to 
> http://www.db.com/unitedkingdom/content/privacy.htm for information about 
> privacy.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
For additional commands, e-mail: server-user-h...@james.apache.org

Reply via email to