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