Dual transports for the same domain: one with local delivery, one relaying to another server

From: Boris Senker (no email)
Date: Tue Feb 27 2007 - 23:18:58 EST

  • Next message: Noel Jones: "RE: My main.cf - peer review."

    Hi guys,

    I have a problem I am unable to find my way through. One of our
    client's company mailservers runs under Postfix + mySQL as in postconf below.

    They are migrating to Exchange, and what they basically need is to
    gradually move users to Exchange. The users in Exchange would need
    their mails relayed to Exchange box, the others would keep their
    local delivery.

    I am unable to divide the tranports. I have tried creating a separate
    database with exchange users and smtp:[Ex.chan.ge.IP] and use
    relay_recipient_maps and relay domains, whatever I do simply doesn't
    work (we have another incoming Postfix gateway without local delivery
    that relays incoming mails for multiple domains, but I can't seem to
    be able to combine both ways into this case) - I either end up with
    no such user or no mailbox - it just doesn't seem to catch the relay stuff.

    How could this be implemented? I can post the contents of all
    mysql....cf files I have tried to use if needed or any other output.

    The existent postconf without relay additions:

    2bounce_notice_recipient = postmaster
    access_map_reject_code = 554
    address_verify_default_transport = $default_transport
    address_verify_local_transport = $local_transport
    address_verify_map =
    address_verify_negative_cache = yes
    address_verify_negative_expire_time = 3d
    address_verify_negative_refresh_time = 3h
    address_verify_poll_count = 3
    address_verify_poll_delay = 3s
    address_verify_positive_expire_time = 31d
    address_verify_positive_refresh_time = 7d
    address_verify_relay_transport = $relay_transport
    address_verify_relayhost = $relayhost
    address_verify_sender = postmaster
    address_verify_service_name = verify
    address_verify_transport_maps = $transport_maps
    address_verify_virtual_transport = $virtual_transport
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    allow_mail_to_commands = alias, forward
    allow_mail_to_files = alias, forward
    allow_min_user = no
    allow_percent_hack = yes
    allow_untrusted_routing = no
    alternate_config_directories =
    always_bcc =
    append_at_myorigin = yes
    append_dot_mydomain = yes
    application_event_drain_time = 100s
    backwards_bounce_logfile_compatibility = yes
    berkeley_db_create_buffer_size = 16777216
    berkeley_db_read_buffer_size = 131072
    best_mx_transport =
    biff = yes
    body_checks = regexp:/etc/postfix/maps/body_checks
    body_checks_size_limit = 51200
    bounce_notice_recipient = postmaster
    bounce_queue_lifetime = 5d
    bounce_service_name = bounce
    bounce_size_limit = 50000
    broken_sasl_auth_clients = yes
    canonical_maps =
    cleanup_service_name = cleanup
    command_directory = /usr/sbin
    command_expansion_filter =
    1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    command_time_limit = 1000s
    config_directory = /etc/postfix
    content_filter = smtp-amavis:[127.0.0.1]:10024
    daemon_directory = /usr/libexec/postfix
    daemon_timeout = 18000s
    debug_peer_level = 2
    debug_peer_list =
    default_database_type = hash
    default_delivery_slot_cost = 5
    default_delivery_slot_discount = 50
    default_delivery_slot_loan = 3
    default_destination_concurrency_limit = 20
    default_destination_recipient_limit = 50
    default_extra_recipient_limit = 1000
    default_minimum_delivery_slots = 3
    default_privs = nobody
    default_process_limit = 180
    default_rbl_reply = $rbl_code Service unavailable; $rbl_class
    [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}
    default_recipient_limit = 10000
    default_transport = smtp
    default_verp_delimiters = +=
    defer_code = 450
    defer_service_name = defer
    defer_transports =
    delay_notice_recipient = postmaster
    delay_warning_time = 0h
    deliver_lock_attempts = 20
    deliver_lock_delay = 1s
    disable_dns_lookups = no
    disable_mime_input_processing = no
    disable_mime_output_conversion = no
    disable_verp_bounces = no
    disable_vrfy_command = no
    dont_remove = 0
    double_bounce_sender = double-bounce
    duplicate_filter_limit = 1000
    empty_address_recipient = MAILER-DAEMON
    enable_errors_to = no
    enable_original_recipient = yes
    error_notice_recipient = postmaster
    error_service_name = error
    expand_owner_alias = no
    export_environment = TZ MAIL_CONFIG
    fallback_relay =
    fallback_transport =
    fast_flush_domains = $relay_domains
    fast_flush_purge_time = 7d
    fast_flush_refresh_time = 12h
    fault_injection_code = 0
    flush_service_name = flush
    fork_attempts = 5
    fork_delay = 1s
    forward_expansion_filter =
    1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    forward_path = $home/.forward${recipient_delimiter}${extension}, $home/.forward
    hash_queue_depth = 1
    hash_queue_names = incoming, active, deferred, bounce, defer, flush,
    hold, trace
    header_address_token_limit = 10240
    header_checks = regexp:/etc/postfix/maps/header_checks
    header_size_limit = 102400
    helpful_warnings = yes
    home_mailbox =
    hopcount_limit = 50
    html_directory = no
    ignore_mx_lookup_error = no
    import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY
    in_flow_delay = 1s
    inet_interfaces = all
    initial_destination_concurrency = 5
    invalid_hostname_reject_code = 501
    ipc_idle = 100s
    ipc_timeout = 3600s
    ipc_ttl = 1000s
    line_length_limit = 2048
    lmtp_bind_address =
    lmtp_bind_address6 =
    lmtp_cache_connection = yes
    lmtp_connect_timeout = 0s
    lmtp_data_done_timeout = 600s
    lmtp_data_init_timeout = 120s
    lmtp_data_xfer_timeout = 180s
    lmtp_destination_concurrency_limit = $default_destination_concurrency_limit
    lmtp_destination_recipient_limit = $default_destination_recipient_limit
    lmtp_lhlo_timeout = 300s
    lmtp_mail_timeout = 300s
    lmtp_quit_timeout = 300s
    lmtp_rcpt_timeout = 300s
    lmtp_rset_timeout = 120s
    lmtp_sasl_auth_enable = no
    lmtp_sasl_password_maps =
    lmtp_sasl_security_options = noplaintext, noanonymous
    lmtp_send_xforward_command = no
    lmtp_skip_quit_response = no
    lmtp_tcp_port = 24
    lmtp_xforward_timeout = 300s
    local_command_shell =
    local_destination_concurrency_limit = 2
    local_destination_recipient_limit = 1
    local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    local_transport = local:$myhostname
    luser_relay =
    mail_name = Postfix
    mail_owner = postfix
    mail_release_date = 20040915
    mail_spool_directory = /var/mail
    mail_version = 2.1.5
    mailbox_command =
    mailbox_command_maps =
    mailbox_delivery_lock = fcntl, dotlock
    mailbox_size_limit = 51200000
    mailbox_transport =
    mailq_path = /usr/bin/mailq.postfix
    manpage_directory = /usr/share/man
    maps_rbl_domains =
    maps_rbl_reject_code = 554
    masquerade_classes = envelope_sender, header_sender, header_recipient
    masquerade_domains =
    masquerade_exceptions =
    max_idle = 100s
    max_use = 100
    maximal_backoff_time = 4000s
    maximal_queue_lifetime = 5d
    message_size_limit = 12288000
    mime_boundary_length_limit = 2048
    mime_header_checks = pcre:/etc/postfix/maps/mime_header_checks
    mime_nesting_limit = 100
    minimal_backoff_time = 1000s
    multi_recipient_bounce_reject_code = 550
    mydestination = $myhostname, localhost.$mydomain, localhost
    mydomain = [obfuscated by post author]
    myhostname = [obfuscated by post author]
    mynetworks = 10.0.15.10, 127.0.0.0/8, 10.0.0.40
    mynetworks_style = subnet
    myorigin = $myhostname
    nested_header_checks = $header_checks
    newaliases_path = /usr/bin/newaliases.postfix
    non_fqdn_reject_code = 504
    notify_classes = resource, software
    owner_request_special = yes
    parent_domain_matches_subdomains =
    debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps
    permit_mx_backup_networks =
    pickup_service_name = pickup
    prepend_delivered_header = command, file, forward
    process_id_directory = pid
    propagate_unmatched_extensions = canonical, virtual
    proxy_interfaces =
    proxy_read_maps = $local_recipient_maps $mydestination
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps
    $relocated_maps $transport_maps $mynetworks
    qmgr_clog_warn_time = 300s
    qmgr_fudge_factor = 100
    qmgr_message_active_limit = 20000
    qmgr_message_recipient_limit = 20000
    qmgr_message_recipient_minimum = 10
    qmqpd_authorized_clients =
    qmqpd_error_delay = 1s
    qmqpd_timeout = 300s
    queue_directory = /var/spool/postfix
    queue_file_attribute_count_limit = 100
    queue_minfree = 0
    queue_run_delay = 1000s
    queue_service_name = qmgr
    rbl_reply_maps =
    readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES
    receive_override_options =
    recipient_bcc_maps =
    recipient_canonical_maps =
    recipient_delimiter =
    reject_code = 554
    relay_clientcerts =
    relay_destination_concurrency_limit = $default_destination_concurrency_limit
    relay_destination_recipient_limit = $default_destination_recipient_limit
    relay_domains = $mydestination
    relay_domains_reject_code = 554
    relay_recipient_maps =
    relay_transport = relay
    relayhost =
    relocated_maps =
    require_home_directory = no
    resolve_dequoted_address = yes
    resolve_null_domain = no
    rewrite_service_name = rewrite
    sample_directory = /usr/share/doc/postfix-2.1.5/samples
    sender_based_routing = no
    sender_bcc_maps =
    sender_canonical_maps =
    sendmail_path = /usr/sbin/sendmail.postfix
    service_throttle_time = 60s
    setgid_group = postdrop
    show_user_unknown_table_name = yes
    showq_service_name = showq
    smtp_always_send_ehlo = yes
    smtp_bind_address =
    smtp_bind_address6 =
    smtp_connect_timeout = 30s
    smtp_data_done_timeout = 600s
    smtp_data_init_timeout = 120s
    smtp_data_xfer_timeout = 180s
    smtp_defer_if_no_mx_address_found = no
    smtp_destination_concurrency_limit = $default_destination_concurrency_limit
    smtp_destination_recipient_limit = $default_destination_recipient_limit
    smtp_enforce_tls = no
    smtp_helo_name = $myhostname
    smtp_helo_timeout = 300s
    smtp_host_lookup = dns
    smtp_line_length_limit = 990
    smtp_mail_timeout = 300s
    smtp_mx_address_limit = 0
    smtp_mx_session_limit = 2
    smtp_never_send_ehlo = no
    smtp_pix_workaround_delay_time = 10s
    smtp_pix_workaround_threshold_time = 500s
    smtp_quit_timeout = 300s
    smtp_quote_rfc821_envelope = yes
    smtp_randomize_addresses = yes
    smtp_rcpt_timeout = 300s
    smtp_rset_timeout = 120s
    smtp_sasl_auth_enable = no
    smtp_sasl_password_maps =
    smtp_sasl_security_options = noplaintext, noanonymous
    smtp_sasl_tls_security_options = $var_smtp_sasl_opts
    smtp_sasl_tls_verified_security_options = $var_smtp_sasl_tls_opts
    smtp_send_xforward_command = no
    smtp_skip_5xx_greeting = yes
    smtp_skip_quit_response = yes
    smtp_starttls_timeout = 300s
    smtp_tls_CAfile =
    smtp_tls_CApath =
    smtp_tls_cert_file =
    smtp_tls_cipherlist =
    smtp_tls_dcert_file =
    smtp_tls_dkey_file = $smtp_tls_dcert_file
    smtp_tls_enforce_peername = yes
    smtp_tls_key_file = $smtp_tls_cert_file
    smtp_tls_loglevel = 0
    smtp_tls_note_starttls_offer = no
    smtp_tls_per_site =
    smtp_tls_scert_verifydepth = 5
    smtp_tls_session_cache_database =
    smtp_tls_session_cache_timeout = 3600s
    smtp_use_tls = no
    smtp_xforward_timeout = 300s
    smtpd_authorized_verp_clients = $authorized_verp_clients
    smtpd_authorized_xclient_hosts =
    smtpd_authorized_xforward_hosts =
    smtpd_banner = [obfuscated by post author] NO UCE ESMTP
    smtpd_client_connection_count_limit = 50
    smtpd_client_connection_limit_exceptions = $mynetworks
    smtpd_client_connection_rate_limit = 0
    smtpd_client_restrictions = check_client_access hash:/etc/postfix/maps/access
    smtpd_data_restrictions =
    smtpd_delay_reject = yes
    smtpd_enforce_tls = no
    smtpd_error_sleep_time = 60
    smtpd_etrn_restrictions =
    smtpd_expansion_filter =
    \t\40!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
    smtpd_hard_error_limit = 10
    smtpd_helo_required = yes
    smtpd_helo_restrictions = permit_mynetworks, check_helo_access
    hash:/etc/postfix/maps/helo_access, reject_unauth_pipelining,
    reject_invalid_hostname
    smtpd_history_flush_threshold = 100
    smtpd_junk_command_limit = 100
    smtpd_noop_commands =
    smtpd_null_access_lookup_key = <>
    smtpd_policy_service_max_idle = 300s
    smtpd_policy_service_max_ttl = 1000s
    smtpd_policy_service_timeout = 100s
    smtpd_proxy_ehlo = $myhostname
    smtpd_proxy_filter =
    smtpd_proxy_timeout = 100s
    smtpd_recipient_limit = 1000
    smtpd_recipient_overshoot_limit = 1000
    smtpd_recipient_restrictions =
    permit_mynetworks, permit_sasl_authenticated, check_sender_access
    hash:/etc/postfix/maps/sender_access, check_sender_access
    hash:/etc/postfix/maps/spoofcheck_access,
    reject_unknown_sender_domain, reject_non_fqdn_hostname,
    reject_non_fqdn_sender, reject_non_fqdn_recipient,
    reject_unauth_destination, check_client_access
    cidr:/etc/postfix/maps/cidr_access, check_helo_access
    regexp:/etc/postfix/maps/helo_regexp, reject_unlisted_recipient,
    check_policy_service
    inet:127.0.0.1:10031, reject_unauth_pipelining,
    reject_invalid_hostname, check_client_access
    hash:/etc/postfix/maps/rbl_whitelist_access, reject_rbl_client
    opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client
    bl.spamcop.net, reject_rbl_client
    sbl-xbl.spamhaus.org, reject_rbl_client
    dnsbl.njabl.org, reject_rbl_client
    cbl.abuseat.org, reject_rhsbl_sender
    rhsbl.sorbs.net, reject_rhsbl_client
    rhsbl.sorbs.net, reject_rbl_client
    smtp.dnsbl.sorbs.net, reject_rhsbl_client
    blackhole.securitysage.com, reject_rhsbl_sender
    blackhole.securitysage.com, check_policy_service
    unix:private/spfpolicy, check_client_access hash:/etc/postfix/maps/access
    smtpd_reject_unlisted_recipient = yes
    smtpd_reject_unlisted_sender = no
    smtpd_restriction_classes = from_spoofcheck_hosts
    smtpd_sasl_application_name = smtpd
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_exceptions_networks =
    smtpd_sasl_local_domain = $myhostname
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
    smtpd_sender_login_maps = mysql:/etc/postfix/mysql_sender_login_maps.cf
    smtpd_sender_restrictions =
    reject_sender_login_mismatch, check_sender_access
    hash:/etc/postfix/maps/sender_access, reject_unknown_sender_domain
    smtpd_soft_error_limit = 60
    smtpd_starttls_timeout = 300s
    smtpd_timeout = 300s
    smtpd_tls_CAfile =
    smtpd_tls_CApath =
    smtpd_tls_ask_ccert = no
    smtpd_tls_auth_only = no
    smtpd_tls_ccert_verifydepth = 5
    smtpd_tls_cert_file = /etc/postfix/cert.pem
    smtpd_tls_cipherlist =
    smtpd_tls_dcert_file =
    smtpd_tls_dh1024_param_file =
    smtpd_tls_dh512_param_file =
    smtpd_tls_dkey_file = $smtpd_tls_dcert_file
    smtpd_tls_key_file = /etc/postfix/key.pem
    smtpd_tls_loglevel = 0
    smtpd_tls_received_header = no
    smtpd_tls_req_ccert = no
    smtpd_tls_session_cache_database =
    smtpd_tls_session_cache_timeout = 3600s
    smtpd_tls_wrappermode = no
    smtpd_use_tls = yes
    soft_bounce = no
    stale_lock_time = 500s
    strict_7bit_headers = no
    strict_8bitmime = no
    strict_8bitmime_body = no
    strict_mime_encoding_domain = no
    strict_rfc821_envelopes = no
    sun_mailtool_compatibility = no
    swap_bangpath = yes
    syslog_facility = mail
    syslog_name = postfix
    tls_daemon_random_bytes = 32
    tls_daemon_random_source =
    tls_ipv6_version = 1.26
    tls_random_bytes = 32
    tls_random_exchange_name = ${config_directory}/prng_exch
    tls_random_prng_update_period = 60s
    tls_random_reseed_period = 3600s
    tls_random_source =
    trace_service_name = trace
    transport_maps = mysql:/etc/postfix/mysql_virtual_transports.cf
    transport_retry_time = 60s
    trigger_timeout = 10s
    undisclosed_recipients_header = To: undisclosed-recipients:;
    unknown_address_reject_code = 450
    unknown_client_reject_code = 450
    unknown_hostname_reject_code = 450
    unknown_local_recipient_reject_code = 550
    unknown_relay_recipient_reject_code = 550
    unknown_virtual_alias_reject_code = 550
    unknown_virtual_mailbox_reject_code = 550
    unverified_recipient_reject_code = 450
    unverified_sender_reject_code = 450
    verp_delimiter_filter = -=+
    virtual_alias_domains = $virtual_alias_maps
    virtual_alias_expansion_limit = 1000
    virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
    virtual_alias_recursion_limit = 1000
    virtual_create_maildirsize = yes
    virtual_destination_concurrency_limit = $default_destination_concurrency_limit
    virtual_destination_recipient_limit = $default_destination_recipient_limit
    virtual_gid_maps = static:504
    virtual_mailbox_base = /usr/local/virtual
    virtual_mailbox_domains =
    proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
    virtual_mailbox_limit = 51200000
    virtual_mailbox_limit_inbox = no
    virtual_mailbox_limit_maps =
    mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
    virtual_mailbox_limit_override = yes
    virtual_mailbox_lock = fcntl
    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
    virtual_maildir_extended = no
    virtual_maildir_limit_message = Sorry, the user's maildir has
    overdrawn his diskspace quota, please try again later.
    virtual_maildir_suffix =
    virtual_minimum_uid = 504
    virtual_overquota_bounce = yes
    virtual_transport = virtual
    virtual_trash_count = no
    virtual_trash_name = .Trash
    virtual_uid_maps = static:504

    Thanks a lot and special greetings to all of Postfix devs,

    Boris Senker


  • Next message: Noel Jones: "RE: My main.cf - peer review."





    Hosted Email Solutions

    Invaluement Anti-Spam DNSBLs



    Powered By FreeBSD   Powered By FreeBSD