[EMAIL PROTECTED] wrote: > >When I send a message to [EMAIL PROTECTED] from a member through a >mail client: >1) Exims mainlog file says: message-id => listaquique ><[EMAIL PROTECTED]> 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, ><[EMAIL PROTECTED]>: 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 "<[EMAIL PROTECTED]>: domain missing or malformed". In this case, <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED], which has an existent and >correctly qualified domain. The SMTP transaction will look like MAIL FROM:<[EMAIL PROTECTED]> 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:<[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: http://mail.python.org/mailman/options/mailman-users/archive%40jab.org Security Policy: http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq01.027.htp