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]:24Looks 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 usingIf 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 isYou 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 fieldAnd then have this for our content_filter line: content_filter = slmtp:127.0.0.1:10023I would also recommend investigating whether you would benefit from concurrency limits (in main.cf), such as: local_destination_concurrency_limit = 300These 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 nic@xxxxxxxxxxx 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