I try to configure Postfix with Zarafa on a virtual domain environment.
The local delivery is made with 'spare.local' domain and the users have public mails from 'spare.be' domain.
The server, I use, is installed on a CentOS 5.1 distribution with Postfix, Mysql, OpenLDAP, Samba, Zarafa and other little stuffs installed.
For the configuration of Zarafa, Postfix and OpenLDAP, I use an home made script based on the one provided by Zarafa. My script bypass some steps in the zarafa script because I set directly the good values. But I add several new features like the configuration of Samba as a PDC, connected to the OpenLDAP.
I added 3 test users:
- alice with [email protected]' as main mail address and her aliases: [email protected]' and [email protected]'[/*:m:1qbp986p]
- bob with [email protected]' and his aliases are: [email protected]' and [email protected]'[/*:m:1qbp986p]
- charlie with main mail as [email protected]' and the aliases: [email protected]', [email protected]' and [email protected]'[/*:m:1qbp986p]
When I try to send a mail to a user with the mail adress [email protected]', postfix and zarafa delivered it correctly. But when I try other mail address, I receive a 5.3.0. error with message : "internal software error. Command output: Starting delivery for user USER Access denied or Unknown user 'USER', error code: 0x80040111".
For instance: I mail to [email protected]', it is delivered, but a mail to [email protected]' returns the 530 message.
I put some debug in Postfix and I can see no LDAP lookups which resolve main mail or alias to local user (as defined in LDAP).
If I use the default virtual transport (virtual_transport = virtual instead of the 'zarafa:' one, I can see the lookups to the LDAP. But I see in the postfix log the mail is deferred : "delivery failed to mailbox /home/vmail/USER: cannot create file exclusively: No such file or directory".
In other words, I need a mix of both : LDAP lookups with zarafa transport.
Here are some of the Postfix configuration files:
- The result of the 'postconf -n' command:
[/*:m:1qbp986p]Code:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 html_directory = no inet_interfaces = localhost mail_owner = postfix mailbox_command = /usr/bin/zarafa-dagent "\$user" mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost mydomain = spare.local myorigin = spare.be newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES sample_directory = /usr/share/doc/postfix-2.3.3/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop unknown_local_recipient_reject_code = 550 virtual_alias_maps = ldap:/etc/postfix/ldap-users.cf ldap:/etc/postfix/ldap-virtual-alias.cf virtual_mailbox_domains = spare.be virtual_mailbox_maps = ldap:/etc/postfix/ldap-users.cf ldap:/etc/postfix/ldap-virtual-alias.cf virtual_transport = zarafa:
- The /etc/postfix/ldap-users.cf file:
[/*:m:1qbp986p]Code:server_host = localhost server_port = 389 version = 3 bind = yes bind_dn = cn=Manager,dc=spare,dc=local bind_pw = pwd search_base = ou=Users,dc=spare,dc=local scope = sub query_filter = (mail=%s) result_attribute = uid
- The /etc/postfix/ldap-virtual-alias.cf file:
[/*:m:1qbp986p]Code:server_host = localhost server_port = 389 version = 3 bind = yes bind_dn = cn=Manager,dc=spare,dc=local bind_pw = pwd search_base = ou=Users,dc=spare,dc=local scope = sub query_filter = (mailAlternateAddress=%s) result_attribute = uid
If you have suggestions, ideas, they are welcome.
If you need more information, I will post them if you tell me what you want.
Thank you in advance,