Gejo Paul wrote:
Dear All,

I am using postfix + perdition + courier + ldap+ maildir (mail quota) on my mail servers. All the functions are working fine on the server except one small issue on my backend servers. I configured mail quota on the mail servers, suppose if the user quota becomes full
condition 1 (working fine)
if the sender mailbox and receiver mailbox existing on the same mail server the sender get a bounce back message stating that user quota is full.
condition 2 (no bounce back message)
if the sender and receiver mailbox existing on two different machines , it doesn't bounce back any messages.bcoz the receiver home directory is not existing on the same server


Back end server  main.cf <http://main.cf/> file
Please do not post main.cf.. post 'postconf -n' instead because it's easier to read and catches typos.
smtpd_banner = $myhostname ESMTP
mydomain = test
Try to use example.(com|net|org) when making up domains for testing|hiding.
myorigin = $mydomain
inet_interfaces = all
mailbox_delivery_lock = flock
virtual_mailbox_lock = flock
myhostname = host1.test.in <http://host1.test.in/>
mydestination = $myhostname, localhost.$mydomain,$mydomain,
localhost.localdomain
Do not list $mydomain in both mydestination and virtual_mailbox_domains (below). List it in only one class.
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8 <http://127.0.0.0/8>


relay_domains = $mydestination
alias_maps = hash:/etc/postfix/aliases
home_mailbox = Maildir/

local_recipient_maps = $virtual_mailbox_maps
This is not a good idea. Virtual are virtual accounts. Local are local accounts. Don't try to combine the two. This also can break things, such as ignoring alias_maps above.
Recommend to remove this setting and use the default.
Set 'local_recipient_maps = ' if you don't want to accept email for local (danger: this breaks system services that email 'root').

#local_transport=virtual
local_transport=maildrop
virtual_transport=maildrop
maildrop_destination_recipient_limit = 1

# Virtual Domain Settings
virtual_mailbox_base = /
virtual_mailbox_maps = ldap:ldapsource
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
virtual_minimum_uid = 1000
virtual_result_attribute = mailMessageStore

# Ldap Mail address lookup/ Mailbox MAPS
ldapsource_timeout = 60
ldapsource_server_host = 192.168.0.250 <http://192.168.0.250/>
ldapsource_search_base = o=test
ldapsource_server_port = 389
ldapsource_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(!(nsAccountLock=true)))
ldapsource_result_attribute = mailMessageStore
ldapsource_scope = sub
ldapsource_expansion_limit = 0
Suggestion: Break out LDAP maps into their own file and reference like ldap:$config_directory/ldapsource (you don't need to postmap LDAP maps) Reason: You can use 'postmap -q' to test maps and see what Postfix gets back. You may need to rewrite this to check the localmailHost (as shown below) matches this server.
Always return 0 rows if it does *not* exist on this machine.


smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject
Um, why not just 'permit_mynetworks, reject' if this is to only send from localhost ($mynetworks)?
Saves a DNS check.


# Size Management for messages.
message_size_limit = 6000000

# Performance Management
default_process_limit = 200
smtpd_error_sleep_time = 0s
smtp_helo_timeout = 60s
smtpd_recipient_limit = 25
maximal_queue_lifetime = 2d
bounce_queue_lifetime = 2d
qmgr_message_active_limit = 50000
qmgr_message_recipient_limit = 50000
in_flow_delay = 0s

relayhost = [192.168.0.253 <http://192.168.0.253/>]

header_checks = regexp:/etc/postfix/header_checks.access

virtual_mailbox_domains = $mydomain,


ERROR LOG
relay=maildrop, delay=0, status=deferred (temporary failure. Command output: /usr/local/bin/maildrop: Unable to change to home directory.

After i went through the posfix mailing list http://readlist.com/lists/postfix.org/postfix-users/13/66180.html , i added transport maps on main .cf , but no luck

I added transport_maps on main.cf <http://main.cf/> file
transport_maps = ldap:transport
# transport maps
transport_timeout = 60
transport_server_host = x.x.x.x
transport_search_base = o=test
transport_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(!(nsAccountLock=true)))
transport_result_attribute = localmailHost
transport_result_filter = smtp:%s
transport_scope = sub
transport_expansion_limit = 0

I am looking for a breakthrough to tackle this issue


Same as above. Break this out and test, test, test.
Note: I would return (in your case) maildrop: if virtual on this machine, and smtp:%s otherwise to avoid loops, but this is beyond my LDAP knowledge.

Brian

Reply via email to