mailman problem with exim
![](https://secure.gravatar.com/avatar/f83a584c09b9179a9e14ea81f2f6ed02.jpg?s=120&d=mm&r=g)
hi all I'm trying to make mailman work with exim (on a centos server) but I'm facing a problem: when a subscriber posts a message, it isn't forwarded to the other subscribers, and no error message is sent back to the sender this is what I find in the /var/log/exim/main.log:
2011-07-28 09:01:50 1QmKbO-0004h7-NS <= lorenzo@coronati.com H=adsl-ull-193-191.49-151.net24.it ([192.168.0.207]) [151.49.191.193] P=esmtpa A=plain_login:lorenzo@coronati.com S=644 id=4E310960.6050509@coronati.com T="provo io" 2011-07-28 09:01:50 1QmKbO-0004h7-NS Failed to find group "" from expanded string "${lookup mysql{select users.gid from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.domain_id = domains.domain_id}}" for the address_pipe transport 2011-07-28 09:01:50 1QmKbO-0004h7-NS == |/usr/local/mailman/mail/mailman post mailinglistaips <mailinglistaips@aips.it> R=system_aliases T=address_pipe defer (-28): Failed to find group "" from expanded string "${lookup mysql{select users.gid from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.domain_id = domains.domain_id}}" for the address_pipe transport
what I understand is that exim (which is configured to manage the email addresses stored in a mysql database) tries to expand the mailing list looking for subscribers via sql, instead of letting mailman to do this am I right? and then, what do I have to do to fix this?
thanks in advance lorenzo
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
See <http://www.exim.org/howto/mailman21.html> for the recommended way to configure Exim with Mailman.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/de4632b78ba00436a9b77ed0d6ea8877.jpg?s=120&d=mm&r=g)
On Fri, Jul 29, 2011 at 07:29:50AM -0700, Mark Sapiro wrote:
And make sure your routers are ordered the way you wish them to have precedence (read from the top)
-- "Bernard: It's another of those irregular verbs. I hold confidential briefings, you leak, he's been charged under section 2A of the Official Secrets Act."
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
Check your exim logs. If your list mail is not using the "mailman_router" router, you need to move that router closer to the front of the routers section, at least ahead of the router it is using. The "mailman_router" router uses the "mailman_transport" transport, not the "address_pipe" transport in the messages in your OP.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/f83a584c09b9179a9e14ea81f2f6ed02.jpg?s=120&d=mm&r=g)
On 29/07/2011 23:42, Mark Sapiro wrote:
Hi Mark, the router is the first of the list; I paste it here:
mailman_router:
driver = accept
domains = +mm_domains
require_files = MAILMAN_LISTCHK
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* :
-confirm+* : -join : -leave :
-owner : -request : -admin
headers_remove = X-Spam-Score:X-Spam-Report
transport = mailman_transport
and the transport follows:
mailman_transport:
driver = pipe
command = MAILMAN_WRAP
'${if def:local_part_suffix
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}}
{post}}'
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
I copied both from one of the many tutorials on the web, and adjusted only the variables in capitals...
Thanks again for your support Lorenzo
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
What is your definition of mm_domains?
require_files = MAILMAN_LISTCHK
What are your defininitions of MAILMAN_LISTCHK, MAILMAN_HOME, MAILMAN_USER and MAILMAN_GROUP
The list above should probably also include -confirm, -subscribe and -unsubscribe.
There should be
domainlist mm_domains=aips.it
or maybe
domainlist mm_domains=aips.it:other.list.domain:...
in your configuration. Your OP showed your list mail was using the transport 'address_pipe', not 'mailman_transport'. If your mailman_router is first and you are still seeing the same errors with the address_pipe transport, some condition in your mailman_router is not being met. Either, your mm_domains domain list does not include your list domain(s) or your MAILMAN_LISTCHK macro doesn't expand to the correct /path/to/lists/LISTNAME/config.pck.
Note that if you installed Mailman from a RedHat/CentOS rpm, most examples on the web won't work because the mail wrapper mail/mailman and the lists/ directory are not in the same MM_HOME directory. I.e. the wrapper is /usr/lib/mailman/mail/mailman and the list directory is /var/lib/mailman/lists/.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/f83a584c09b9179a9e14ea81f2f6ed02.jpg?s=120&d=mm&r=g)
On 30/07/2011 15:57, Mark Sapiro wrote:
You got it Mark! I didn't think to check those paths, and in fact they were wrong. The error in the log was misleading me, nothing to do with virtual users and mysql... I should have started with the simplest things... Thanks a lot, I hope this thread can be useful to CentOS users. Lorenzo
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
See <http://www.exim.org/howto/mailman21.html> for the recommended way to configure Exim with Mailman.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/de4632b78ba00436a9b77ed0d6ea8877.jpg?s=120&d=mm&r=g)
On Fri, Jul 29, 2011 at 07:29:50AM -0700, Mark Sapiro wrote:
And make sure your routers are ordered the way you wish them to have precedence (read from the top)
-- "Bernard: It's another of those irregular verbs. I hold confidential briefings, you leak, he's been charged under section 2A of the Official Secrets Act."
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
Check your exim logs. If your list mail is not using the "mailman_router" router, you need to move that router closer to the front of the routers section, at least ahead of the router it is using. The "mailman_router" router uses the "mailman_transport" transport, not the "address_pipe" transport in the messages in your OP.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/f83a584c09b9179a9e14ea81f2f6ed02.jpg?s=120&d=mm&r=g)
On 29/07/2011 23:42, Mark Sapiro wrote:
Hi Mark, the router is the first of the list; I paste it here:
mailman_router:
driver = accept
domains = +mm_domains
require_files = MAILMAN_LISTCHK
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* :
-confirm+* : -join : -leave :
-owner : -request : -admin
headers_remove = X-Spam-Score:X-Spam-Report
transport = mailman_transport
and the transport follows:
mailman_transport:
driver = pipe
command = MAILMAN_WRAP
'${if def:local_part_suffix
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}}
{post}}'
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
I copied both from one of the many tutorials on the web, and adjusted only the variables in capitals...
Thanks again for your support Lorenzo
![](https://secure.gravatar.com/avatar/56f108518d7ee2544412cc80978e3182.jpg?s=120&d=mm&r=g)
Lorenzo Coronati wrote:
What is your definition of mm_domains?
require_files = MAILMAN_LISTCHK
What are your defininitions of MAILMAN_LISTCHK, MAILMAN_HOME, MAILMAN_USER and MAILMAN_GROUP
The list above should probably also include -confirm, -subscribe and -unsubscribe.
There should be
domainlist mm_domains=aips.it
or maybe
domainlist mm_domains=aips.it:other.list.domain:...
in your configuration. Your OP showed your list mail was using the transport 'address_pipe', not 'mailman_transport'. If your mailman_router is first and you are still seeing the same errors with the address_pipe transport, some condition in your mailman_router is not being met. Either, your mm_domains domain list does not include your list domain(s) or your MAILMAN_LISTCHK macro doesn't expand to the correct /path/to/lists/LISTNAME/config.pck.
Note that if you installed Mailman from a RedHat/CentOS rpm, most examples on the web won't work because the mail wrapper mail/mailman and the lists/ directory are not in the same MM_HOME directory. I.e. the wrapper is /usr/lib/mailman/mail/mailman and the list directory is /var/lib/mailman/lists/.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
![](https://secure.gravatar.com/avatar/f83a584c09b9179a9e14ea81f2f6ed02.jpg?s=120&d=mm&r=g)
On 30/07/2011 15:57, Mark Sapiro wrote:
You got it Mark! I didn't think to check those paths, and in fact they were wrong. The error in the log was misleading me, nothing to do with virtual users and mysql... I should have started with the simplest things... Thanks a lot, I hope this thread can be useful to CentOS users. Lorenzo
participants (3)
-
Adam McGreggor
-
Lorenzo Coronati
-
Mark Sapiro