On 03/18/2010 01:41 AM, Simon Matter wrote:
I just want to get this straight. Please, someone clarify his to me.
Consider Cyrus and Postifx runing on different servers and having to
communicate with each other through lmtp.
1)
HereĀ“s the line we all know from cyrus.conf that is gonna bring lmtp
listening on tcp:
lmtp cmd="/usr/local/cyrus/bin/lmtpd" listen="lmtp" prefork=1
maxchild=100
Is that enough on the cyrus side ?
That look okay, but see below...
2)
posfix's main.cf :
mailbox_transport = inet:[1.2.3.4]:24
Looks also okay.
In postfix, I would suggest using local_transport instead of
mailbox_transport. The reason I make this suggestion has to do with
getting the most out of the postfix processing and delivery options.
One critical change, however, is that instead of alias_maps you must use
virtual_alias_maps. Those are handled a little bit differently, so
check the README files.
Here I would use:
local_transport = lmtp:inet:imap.example.com:2003 <-- or whatever
port you're using
If you wish to stick with mailbox_transport, you should still use
"lmtp:inet..." so postfix knows to talk LMTP and not SMTP for delivery.
From the postfix documentation:
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transports
# file.
You can always define a more specific transport in master.cf, and then
cite that in your {mailbox|local}_transport line. For example, we often
pair postfix with amavisd-new, and don't want postfix to overrun the
number of amavis processes, so we add this to master.cf:
# A special lmtp instance to feed amavisd. Keep the maxproc field
# below the max_servers value in amavisd.conf
slmtp unix - - n - 14 lmtp
And then have this for our content_filter line:
content_filter = slmtp:127.0.0.1:10023
I would also recommend investigating whether you would benefit from
concurrency limits (in main.cf), such as:
local_destination_concurrency_limit = 300
local_destination_recipient_limit = 300
These may help prevent bottlenecks when you receive messages destined
for large distribution lists.
3)
On some previous reply someone wrote about adding the following to
relay_domains :
example.com lmtp:unix:public/lmtp # for a local LMTP socket
example.com inet:[1.2.3.4]:24 # for a remote LMTP socket
and then to extend transport_maps:
transport_maps=hash:/etc/postfix/transports,hash:/etc/postfix/relay_domains.
Cant figure out why this is necesary.
Well, using a simple mailbox_transport like shown in 2) is the easiest
configuration. Of course you can have very complex postfix configs for
example with complicated transport maps but you don't have to make it
complex if your environment doesn't enforce it.
Adding entries like this to relay_domains is necessary only if the
domains in question are not in your mydestinations setting. Having more
than one entry for the same left-hand value (example.com in this case)
is redundant, as the first match wins in postfix map lookups.
4)
And last but not least. How postfix authenticates in anyway so Cyrus ????
The question is how you want to communicate. In my case I was using a
local trusted network between postfix and cyrus server so I did the
easiest thing which is running lmtpd without authentication and configure
TCP wrapper to accept only connections from the postfix host. Like so:
In /etc/cyrus.conf I had lmtpd listening preauthenticated:
lmtp cmd="lmtpd -a" listen="lmtp" prefork=1
In /etc/hosts.deny on the cyrus host I had:
# Allow only specific hosts to send mail via LMTP
lmtp: ALL EXCEPT mailhub.domain.tld
To set the postfix credentials for lmtp, use the lmtp_sasl_*
configuration settings. Check the postfix documentation for exhaustive
discourse on this:
http://www.postfix.org/SASL_README.html#client_sasl
Note: you will be dealing with the lmtp client for postfix and the lmtpd
server for cyrus.
Cheers,
-nic
--
Nic Bernstein n...@onlight.com
Onlight llc. www.onlight.com
219 N. Milwaukee St., Suite 2a v. 414.272.4477
Milwaukee, Wisconsin 53202
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html