Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread ed

On 06/24/2011 09:10 PM, Khalil Abbas wrote:

Hi,

we are a local TV station  newspaper having a mailing list with 2+ Million 
Subscribers.. what is the best server configuration (CPU, RAM) that can handle this 
list? taking in consideration that only 1 daily email is sent to the subscribers..

Thank you ..
I am sure others can answer better, but budget is the primary (and 
missing) consideration in this equation.
The fastest and most CPU cores and as much memory as possible in a 64 
bit system is the answer.
If you MUST sacrifice cpu or memory, then balance as well as possible, 
and let more memory win over more CPU speed.

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


[Mailman-Users] Mailman, Postfix virtual domains

2011-06-25 Thread Aranel Doriath
Hi all. 
I have Centos 5.5 server with Postfix, configured to work in AD, and i want to 
add the mailman aliases:

main.cf:
virtual_alias_maps = ldap:/etc/postfix/ldap-groups.cf, 
ldap:/etc/postfix/ldap-groups2.cf, hash:/etc/postfix/valias

/etc/postfix/aliases looks like:
mailman@pmz.local              |/usr/lib/mailman/mail/mailman post mailman

But i recieved this:

|/usr/lib/mailman/mail/mailman post mailman@melchior.kolos.local (expanded 
from mailman@pmz.local): unknown user: |/usr/lib/mailman/mail/mailman post 
mailman 

How can i connect Mailman to Postfix? 
P.S. Sorry for my English :)
--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Re: [Mailman-Users] Mailman, Postfix virtual domains

2011-06-25 Thread Mark Sapiro
On 6/24/2011 6:29 AM, Aranel Doriath wrote:
 Hi all. 
 I have Centos 5.5 server with Postfix, configured to work in AD, and i want 
 to add the mailman aliases:
 
 main.cf:
 virtual_alias_maps = ldap:/etc/postfix/ldap-groups.cf, 
 ldap:/etc/postfix/ldap-groups2.cf, hash:/etc/postfix/valias
 
 /etc/postfix/aliases looks like:
 mailman@pmz.local  |/usr/lib/mailman/mail/mailman post mailman


This alias is not correct. You should consider Mailman/Postfix
integration as discussed at
http://www.list.org/mailman-install/node12.html. In any case, the left
part of the alias (in alias_maps) should be a local_part only and
terminated with a colon as

mailman:|/usr/lib/mailman/mail/mailman post mailman

If you need virtual mappings (virtual_alias_maps), those entries look like

mailman@pmz.local  mailman

and map the virtual domain address mailman@pmz.local to the local
address mailman which is in turn mapped to the pipe by alias_maps.


 But i recieved this:
 
 |/usr/lib/mailman/mail/mailman post mailman@melchior.kolos.local (expanded 
 from mailman@pmz.local): unknown user: |/usr/lib/mailman/mail/mailman post 
 mailman 
 
 How can i connect Mailman to Postfix? 


It is hard to say for sure without at least the output of 'postconf -n',
but it looks like you may have a file containing aliases that belongs in
alias_maps included in virtual_alias_maps instead or in addition.

There are many threads on this subject in the archives of this list. See
the FAQ at http://wiki.list.org/x/OIA9 for information on searching
the archives.

-- 
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Mark Sapiro
Khalil Abbas wrote:

we are a local TV station  newspaper having a mailing list with 2+ Million 
Subscribers.. what is the best server configuration (CPU, RAM) that can handle 
this list? taking in consideration that only 1 daily email is sent to the 
subscribers..


Consider that likely much more than half the impact is going to be from
the MTA rather than Mailman. Perhaps you should be asking on a list
specific to your MTA.

I would suggest at a minimum that you could reduce your Mailman impact
by breaking up your list into perhaps 240 roughly equal sub-lists and
sending the post to one list at a time at 6 minute intervals. Then if
your system can complete delivery of the post from one sub-list to its
8500+- members in under 6 minutes, you should be OK.

-- 
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Khalil Abbas
SMTP_MAX_RCPTS =5 WOULD BE OK? OR SHOULD I REDUCE OR INCREASE IT FOR HOTMAIL 
AND YAHOO TO ACCEPT OUR MESSAGES?


-Original Message- 
From: Mark Sapiro

Sent: Saturday, June 25, 2011 8:39 PM
To: Khalil Abbas ; mailman-users@python.org
Subject: Re: [Mailman-Users] Server Configuration..

Khalil Abbas wrote:


we are a local TV station  newspaper having a mailing list with 2+ Million 
Subscribers.. what is the best server configuration (CPU, RAM) that can 
handle this list? taking in consideration that only 1 daily email is sent 
to the subscribers..



Consider that likely much more than half the impact is going to be from
the MTA rather than Mailman. Perhaps you should be asking on a list
specific to your MTA.

I would suggest at a minimum that you could reduce your Mailman impact
by breaking up your list into perhaps 240 roughly equal sub-lists and
sending the post to one list at a time at 6 minute intervals. Then if
your system can complete delivery of the post from one sub-list to its
8500+- members in under 6 minutes, you should be OK.

--
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Carl Zwanzig

On 6/25/2011 11:15 AM, Khalil Abbas wrote:

SMTP_MAX_RCPTS =5 WOULD BE OK? OR SHOULD I REDUCE OR INCREASE IT FOR HOTMAIL
AND YAHOO TO ACCEPT OUR MESSAGES?


Have you read the FAQ sections on performance and searched the archive for 
discussions? There have been a few about this.  Can your ISP deal with the 
load? Do you have appropriate SPF/etc set up. IP addresses that aren't 
likely to be blacklisted? Server performance is only half the battle.


z!
--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Mark Sapiro
Khalil Abbas wrote:

SMTP_MAX_RCPTS =5 WOULD BE OK? OR SHOULD I REDUCE OR INCREASE IT FOR HOTMAIL 
AND YAHOO TO ACCEPT OUR MESSAGES?


WHY ARE YOU SHOUTING?

I have no real information as to why Hotmail and Yahoo were not
accepting your mail, but apparently at one point I thought that
reducing the number of Hotmail and/or Yahoo envelope recipients in a
single message transaction might help and apparently, it did.
Presumably, nothing at Hotmail and Yahoo has changed, so I wouldn't
advise changing SMTP_MAX_RCPTS.

What I would advise is before changing other things including hardware,
that you try the Postfix changes recommended to you at
http://mail.python.org/pipermail/mailman-users/2011-June/071671.html
which you apparently never tried or at least never reported trying,
and if that doesn't solve the problem completely, that you try the
patch in the attached throttle.patch.txt file. The settings in this
patch will limit Mailman to send to 2000 recipients per minute which
will spread your 2+ million recipients over about 17 hours and will be
as effective as making many small lists.

Note that contrary to your assertion at
http://mail.python.org/pipermail/mailman-users/2011-June/071720.html
that the patch is not stable and not tested before, I never said it
was not tested. The FAQ says it has been only minimally tested and is
not guaranteed to work. What that means is it hasn't seen significant
use and it may not solve your problem, but it is almost certainly more
stable than rebooting the server every hour.

And if you do try it and it does work, we can remove the caveats, and
if it doesn't solve th problem, at least we'll know that.

Free, open source software is a community effort, not a one-way street.

-- 
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Mark Sapiro
Mark Sapiro wrote:

What I would advise is ... that you try the
patch in the attached throttle.patch.txt file.


Sorry, I forgot the attachment. Here it is.

-- 
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--- test-mailman-2.1/Mailman/Handlers/SMTPDirect.py 2010-07-03 
14:12:22.0 -0700
+++ test-mailman/Mailman/Handlers/SMTPDirect.py 2011-02-04 19:29:49.234375000 
-0800
@@ -52,6 +52,37 @@
 True = 1
 False = 0
 
+# Throttling settings.  Do not send to more than THROTTLE_LIMIT recipients
+# within THROTTLE_TIME seconds.  Set THROTTLE_LIMIT to 0 to not throttle.
+THROTTLE_TIME = 60
+THROTTLE_LIMIT = 2000
+THROTTLE_DATA = []
+
+# check throttling.  Doesn't return until total recipients in THROTTLE_TIME
+# = THROTTLE_LIMIT.
+# 
+def check_throttle(count):
+global THROTTLE_DATA
+if THROTTLE_LIMIT = 0:
+return
+if count = 0 or count  THROTTLE_LIMIT:
+syslog('error', 'check_throttle: count=%d; THROTTLE_LIMIT=%d',
+   count, THROTTLE_LIMIT)
+return
+now = time.time()
+total = 0
+THROTTLE_DATA = [(num, tim) for (num, tim) in THROTTLE_DATA
+ if tim  now - THROTTLE_TIME]
+for num, tim in THROTTLE_DATA:
+total += num
+total += count
+if total  THROTTLE_LIMIT:
+time.sleep(THROTTLE_TIME - now + THROTTLE_DATA[0][1])
+check_throttle(count)
+else:
+THROTTLE_DATA.append((count, now))
+return
+
 
 
 # Manage a connection to the SMTP server
@@ -118,10 +149,14 @@
 chunks = [[recip] for recip in recips]
 msgdata['personalize'] = 1
 deliveryfunc = verpdeliver
-elif mm_cfg.SMTP_MAX_RCPTS = 0:
+elif mm_cfg.SMTP_MAX_RCPTS = 0 and (THROTTLE_LIMIT =0 or
+ THROTTLE_LIMIT = len(recips)):
 chunks = [recips]
 else:
-chunks = chunkify(recips, mm_cfg.SMTP_MAX_RCPTS)
+if THROTTLE_LIMIT = 0 or THROTTLE_LIMIT  mm_cfg.SMTP_MAX_RCPTS:
+chunks = chunkify(recips, mm_cfg.SMTP_MAX_RCPTS)
+else:
+chunks = chunkify(recips, THROTTLE_LIMIT)
 # See if this is an unshunted message for which some were undelivered
 if msgdata.has_key('undelivered'):
 chunks = msgdata['undelivered']
@@ -384,6 +419,8 @@
 msgid = msg['message-id']
 try:
 # Send the message
+# but wait if necessary for throttling
+check_throttle(len(recips))
 refused = conn.sendmail(envsender, recips, msgtext)
 except smtplib.SMTPRecipientsRefused, e:
 syslog('smtp-failure', 'All recipients refused: %s, msgid: %s',
--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Khalil Abbas

lol I'm not shouting, just too lazy to hit caps :)

well I bought this server:

RAM 1x 4 GB DDR2-RAM ECC
HDD 2x 500 GB SATA II-HDD 7.200 rpm
Barebone 1x Fujitsu PRIMERGY RX100 S5
CPU 1x Intel Xeon X3320 Quadcore

I did set the SMTP_MAX_RCPT to 5 .. then I created a list of 10,000 members, 
n it delivered them in like 5-6 minutes ..


there was about 500 yahoo addresses and yahoo deferred a few messages.. 
luckily Hotmail accepted all 5500 addresses..


is that good?

do you think getting 2 or 3 or even 4 servers like this one and splitting 
the 2 million users over them is better?


about the throttle patch, ok I confess, I AM IGNORANT! I have no idea how to 
install the patch :)


I have mailman 2.1.9 by the way ..

Thanks ..



-Original Message- 
From: Mark Sapiro

Sent: Saturday, June 25, 2011 10:40 PM
To: Khalil Abbas ; mailman-users@python.org
Subject: Re: [Mailman-Users] Server Configuration..

Khalil Abbas wrote:

SMTP_MAX_RCPTS =5 WOULD BE OK? OR SHOULD I REDUCE OR INCREASE IT FOR 
HOTMAIL

AND YAHOO TO ACCEPT OUR MESSAGES?



WHY ARE YOU SHOUTING?

I have no real information as to why Hotmail and Yahoo were not
accepting your mail, but apparently at one point I thought that
reducing the number of Hotmail and/or Yahoo envelope recipients in a
single message transaction might help and apparently, it did.
Presumably, nothing at Hotmail and Yahoo has changed, so I wouldn't
advise changing SMTP_MAX_RCPTS.

What I would advise is before changing other things including hardware,
that you try the Postfix changes recommended to you at
http://mail.python.org/pipermail/mailman-users/2011-June/071671.html
which you apparently never tried or at least never reported trying,
and if that doesn't solve the problem completely, that you try the
patch in the attached throttle.patch.txt file. The settings in this
patch will limit Mailman to send to 2000 recipients per minute which
will spread your 2+ million recipients over about 17 hours and will be
as effective as making many small lists.

Note that contrary to your assertion at
http://mail.python.org/pipermail/mailman-users/2011-June/071720.html
that the patch is not stable and not tested before, I never said it
was not tested. The FAQ says it has been only minimally tested and is
not guaranteed to work. What that means is it hasn't seen significant
use and it may not solve your problem, but it is almost certainly more
stable than rebooting the server every hour.

And if you do try it and it does work, we can remove the caveats, and
if it doesn't solve th problem, at least we'll know that.

Free, open source software is a community effort, not a one-way street.

--
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Server Configuration..

2011-06-25 Thread Mark Sapiro
Khalil Abbas wrote:

lol I'm not shouting, just too lazy to hit caps :)


Regardless of why it happened, it comes across to others as shouting.


well I bought this server:

RAM 1x 4 GB DDR2-RAM ECC
HDD 2x 500 GB SATA II-HDD 7.200 rpm
Barebone 1x Fujitsu PRIMERGY RX100 S5
CPU 1x Intel Xeon X3320 Quadcore

I did set the SMTP_MAX_RCPT to 5 .. then I created a list of 10,000 members, 
n it delivered them in like 5-6 minutes ..

there was about 500 yahoo addresses and yahoo deferred a few messages.. 
luckily Hotmail accepted all 5500 addresses..

is that good?


It's not terrific. At that rate, assuming everything had completely
left your MTA in that time, it would take between 17 and 20 hours to
deliver to 2 million recipients. Is that acceptable?

Also, it is not clear that just because Hotmail accepted all 5500
addresses out of 10,000, that they will accept the next 55,000 out of
the next 100,000 (if there are that many). Also, once Yahoo starts
deferring, their deferral rate will increase if you keep sending more,
and this will add to the load on your MTA.


do you think getting 2 or 3 or even 4 servers like this one and splitting 
the 2 million users over them is better?


I can't say. Perhaps the bottleneck is the bandwidth of your internet
connection. If so, increasinfg the ability to push more data faster
won't help at all.


about the throttle patch, ok I confess, I AM IGNORANT! I have no idea how to 
install the patch :)

I have mailman 2.1.9 by the way ..

The throttle.patch.txt file attached to this message contains a 2.1.9
version of the patch. The only difference is the line number of the
last portion.

To install it, save the file and cd to your mailman installation and
give the command

 patch Mailman/Handlers/SMTPDirect.py  /path/to/throttle.patch.txt

and then restart Mailman.

If anything goes wrong, you can remove the patch with the command

 patch -R Mailman/Handlers/SMTPDirect.py  /path/to/throttle.patch.txt

followed by another restart of Mailman.

-- 
Mark Sapiro m...@msapiro.netThe highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan

--- SMTPDirect.py.orig  2011-06-25 17:39:07.859375000 -0700
+++ SMTPDirect.py   2011-06-25 17:43:04.078125000 -0700
@@ -52,6 +52,37 @@
 True = 1
 False = 0
 
+# Throttling settings.  Do not send to more than THROTTLE_LIMIT recipients
+# within THROTTLE_TIME seconds.  Set THROTTLE_LIMIT to 0 to not throttle.
+THROTTLE_TIME = 60
+THROTTLE_LIMIT = 2000
+THROTTLE_DATA = []
+
+# check throttling.  Doesn't return until total recipients in THROTTLE_TIME
+# = THROTTLE_LIMIT.
+# 
+def check_throttle(count):
+global THROTTLE_DATA
+if THROTTLE_LIMIT = 0:
+return
+if count = 0 or count  THROTTLE_LIMIT:
+syslog('error', 'check_throttle: count=%d; THROTTLE_LIMIT=%d',
+   count, THROTTLE_LIMIT)
+return
+now = time.time()
+total = 0
+THROTTLE_DATA = [(num, tim) for (num, tim) in THROTTLE_DATA
+ if tim  now - THROTTLE_TIME]
+for num, tim in THROTTLE_DATA:
+total += num
+total += count
+if total  THROTTLE_LIMIT:
+time.sleep(THROTTLE_TIME - now + THROTTLE_DATA[0][1])
+check_throttle(count)
+else:
+THROTTLE_DATA.append((count, now))
+return
+
 
 
 # Manage a connection to the SMTP server
@@ -118,10 +149,14 @@
 chunks = [[recip] for recip in recips]
 msgdata['personalize'] = 1
 deliveryfunc = verpdeliver
-elif mm_cfg.SMTP_MAX_RCPTS = 0:
+elif mm_cfg.SMTP_MAX_RCPTS = 0 and (THROTTLE_LIMIT =0 or
+ THROTTLE_LIMIT = len(recips)):
 chunks = [recips]
 else:
-chunks = chunkify(recips, mm_cfg.SMTP_MAX_RCPTS)
+if THROTTLE_LIMIT = 0 or THROTTLE_LIMIT  mm_cfg.SMTP_MAX_RCPTS:
+chunks = chunkify(recips, mm_cfg.SMTP_MAX_RCPTS)
+else:
+chunks = chunkify(recips, THROTTLE_LIMIT)
 # See if this is an unshunted message for which some were undelivered
 if msgdata.has_key('undelivered'):
 chunks = msgdata['undelivered']
@@ -366,6 +401,8 @@
 msgid = msg['message-id']
 try:
 # Send the message
+# but wait if necessary for throttling
+check_throttle(len(recips))
 refused = conn.sendmail(envsender, recips, msgtext)
 except smtplib.SMTPRecipientsRefused, e:
 syslog('smtp-failure', 'All recipients refused: %s, msgid: %s',
--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org