[Mailman-Users] My list members don't recive mail sent to thier list
Mark Sapiro
msapiro at value.net
Fri Oct 14 03:06:04 CEST 2005
quiuqee at montevideo.com.uy wrote:
>
>When I send a message to listaquique at sempronlistas.com from a member through a
>mail client:
>1) Exims mainlog file says:
message-id => listaquique
><listaquique at semrponlistas.com> R=mailman_routter T= mailman_transport
>
.Completed).
>2) Mailmans post log file says:
.. (1502) post to listaquique from
, size=
>
.., message-id=
.., success
>3) Mailmans smtp log file says:
.smtp for 4 recips, completed in 10.029 seconds
>4) Mailmans smtp-failure log file says: SMTP session failure:501,
><listaquique-bounces at sempronlistas.com>: domain missing or malformed
.
>5) Nor exims mainlog nor exims reject log mention nothing about mailman trying
>to send the messages to the four members of the list
>6) Besides that, messages are correctly posted in the lists archives (through
>the web)
The processing is getting all the way to SMTPDirect.py to send out the
posts. This says that Exim is properly configured to deliver incoming
mail to Mailman and Mailman's qrunners are running and processing the
queues. The problem is in sending outgoing mail via SMTP to the
outgoing MTA.
>It seems that mailman cant send out the messages to the members of the list
>through exim. Furthermore, exim doesnt even notice that mailman is trying to
>send outgoing mail through it (is mailman supposed to send the outgoing mail
>through exim?, or does it send it by himself (using the smtpd python module)?).
In the default case, mail is sent by the Mailman module
Mailman/Handlers/SMTPDirect.py. We know this is your case, because the
'smtp' and 'smtp-failure' logging is done only by this module. This
module uses Python's smtplib routines to deliver the mail via SMTP to
the SMTP server SMTPHOST:SMTPPORT. The defaults for these are
SMTPHOST = 'localhost'
SMTPPORT = 0
And SMTPPORT = 0 tells smtplib to use its default SMTP port which is
25. Thus mail is delivered by default via SMTP to the server on port
25 of localhost.
This server is responding with code 501 and error message
"<listaquique-bounces at sempronlistas.com>: domain missing or
malformed". In this case, <listaquique-bounces at sempronlistas.com> is
the envelope sender of the message and it appears that the server
doesn't like it.
>In the former case, I dont know what interface mailman uses to send outgoing
>mail to exim:
>-Perhaps it uses batch mode, and perhaps this mode errors dont figure on exim
>logs.
>-I think that if mailman uses the smtp interface through the local loop, at
>least some error like domain missing or malformed should appear on exim logs.
I think so too. I don't know why not
>I searched the domains involved and found that:
>-the domains on the members addresses are all correct.
>-I dont know what recipient figures when mailman sends mail to the members, but
>I suppose its listaquique at sempronlistas.com, which has an existent and
>correctly qualified domain.
The SMTP transaction will look like
MAIL FROM:<listaquique-bounces at sempronlistas.com>
and then the four
RCPT TO:<member address>
and then
DATA
and the message. The default behavior is to not quit, but keep the
connection open. See the documentation in Defaults.py for
SMTP_MAX_RCPTS and SMTP_MAX_SESSIONS_PER_CONNECTION. Also note that
MAX_DELIVERY_THREADS is no longer used in current Mailman versions.
>Its important to say that the problem also appears when running directly cat
>message | mailman post listaquique command, being such message, a valid
>message from a list member stored in a file. This leads me to think that its a
>mailmans problem in sending outgoing mail, not an exims problem in contacting
>mailman when it identifies mail sent to mailing-lists.
Yes, it is definitely a problem with Mailman sending outgoing messages
and not a problem with Exim delivering incoming mail to Mailman.
However, it may still be an Exim configuration problem.
> I give details of the different packages and system configuration:
>-------------------------------------------------------------------------------------
>
>Exim configuration:
>------------------------
>As I said before, I dont think the problem is exim, bust just in case here is
>some detail of the exims configuration Im using:
>
>1) Ive defined the four macros mentioned in the README.EXIM file:
>MAILMAN_HOME = /var/lib/mailman
>MAILMAN_WRAP = MAILMAN_HOME/mail/mailman
>MAILMAN_USER = list
>MAILMAN_GROUP = daemon
This all has to do with incoming mail which is working.
>2) Ive included the mailman_transport and mailman_router mentioned in README.EXIM
Again, incoming I think.
>Also in a desperate attempt, I defined list (mailmans system user) as a
>trusted-user (although I notice that wasnt the problem because when I su list
>from command line, I sent mail through exim perfectly).
Try telnet to 'localhost' port 25 and see if you can send mail by
manually typing the
MAIL FROM:<listaquique-bounces at sempronlistas.com>
RCPT TO:
and
DATA
commands.
>
>Mailman configuration:
>----------------------------
>In mm_cfg.py I defined the following:
>
>DEFAULT_EMAIL_HOST = sempronlistas.com
>DEFAULT_URL_-HOST = www.sempronmailman.com # This is the url of the #localhost
>I use for mailman, which works perfectly well (I can access the web interface,
>#configure the list and also watch the posted messages)
>MTA = None #(Ive also tried commenting this out with the same results)
>
>Searching the Defaults.py, Ive found a SMTPPORT=0, which I changed to
>SMTPPORT=25 with the same results.
That's because it's the same thing as I mentioned above.
>Mailmans verifications:
>-----------------------------
>When I ran check_perms script, it says: No problems found (obtaining this
>answer by running some chmods commands on some directories).
>When I ran check_db script, it says: Nothing to do.
>
>
>Process details:
>------------------
>When I ran ps aux, I can see the following process related with mailman, all
>running by the list user:
>-mailmanctl
>-qrunner runner=ArchRunner
>-qrunner runner=BounceRunner
>-qrunner runner=CommandRunner
>-qrunner runner=IncommingRunner
>-qrunner runner=NewsRunner
>-qrunner runner=OutgoingRunner
>-qrunner runner=VirginRunner
>-qrunner runner=RetryRunner
>
>Cronjobs:
>-----------
>When I ran crontab u list -l, it says: no crontab for list.
>
>As I understood reading the documentation, this is fine because the qrunners
>alive in ram are supposed to remove mailmans dependency on cron for sending
>messages.
For messages yes, but periodic digests rely on senddigests.
>Besides this, I read the crontab file, and all cronjobs were related to other
>purposes than to deliver messages to list members (checkdb, disabled,
>senddigests, mailpasswds, gate-news, nightly_gzip).
Yes, but they should run anyway except maybe gate-news.
>System aliases details:
>--------------------------
>Although I think this is unnecessary, because exims transport takes care of the
>suffixes when executing mailmans commands, I defined all the system aliases
>required for listaquique and mailman lists in the /etc/aliases, and
>afterwords run newaliases command.
Yes, it should be unnecessary, and this part is working anyway.
>Other questions:
>--------------------
>
>I wonder where I can access some mailman documentation so as to answer the
>following questions:
>
>Ive read somewhere that milman uses an external MTA running on the localhost on
>port 25. Is this right or not?
This is the default but can be vhanged via SMTPHOST and SMTPPORT.
>What does mailman has to do with de smtpd python module? What is that SMTPPORT=0
>on Defaults.py. Shouldnt it be 25?
Mailman does not use Python's smtpd module. Mailman uses Pythons
smtplib to interact with an external SMTP server. SMTPPORT=0 is passed
to smtplib and tells smtplib to use its own SMTP default port (which
is 25). In this way, Mailman doesn't have to know what SMTP port to
use unless it is different from the standard.
>I understand that the existence of qrunners eliminates some mailmans dependence
>on cron. Is this right?
Yes, but cron is still used for various things.
>Where can I read the mailmans architecture? : What exactly each qrunner is
>supposed to do? Also: What is mailmanctl daemon supposed to do?
I learned Mailman's architecture by reading the code to find the
answers to questions people asked on this list. I don't know a better
way.
The qrunners process the queue entries. The mailmanctl process starts
and stops and monitors and communicates with the qrunner processes.
--
Mark Sapiro <msapiro at value.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
More information about the Mailman-Users
mailing list