我们在mail.mainserver.com上有我们的主服务器,地址为[email protected]
我们还有两个其他的域名:domain1.com和domain2.com,这些域名是在Gmail上托pipe的。 Gmail将邮件重新路由到[email protected]
在/etc/postfix/main.cf中
virtual_alias_domains = domain1.com, domain2.com virtual_alias_maps = hash:/etc/postfix/virtual
并在/ etc / postfix / virtual中
@mail.mainserver.com [email protected] @domain1.com [email protected] @domian2.com [email protected]
这些设置正在接收电子邮件到上述任何一个领域的工作,但我们遇到的问题是发送电子邮件从一个虚拟的别名,即[email protected]到现有的邮箱在Gmail即[email protected]
电子邮件不发送,而是放入[email protected]的收件箱
有什么办法可以创build一个忽略列表,以便postfix忽略虚拟别名表上的特定电子邮件地址的检查,并将它们发送到任何其他外部电子邮件地址?
提前致谢。
根据要求,这是我们的完整configuration:
# Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file = /etc/ssl/certs/iRedMail_CA.pem smtpd_tls_key_file = /etc/ssl/private/iRedMail.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = mail.mainserver.com alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases myorigin = mail.mainserver.com mydestination = $myhostname, localhost, localhost.localdomain, localhost.$myhostname relayhost = mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 virtual_alias_domains = domain1.com,domain2.com allow_percent_hack = no swap_bangpath = no mydomain = mainserver.com mynetworks_style = host smtpd_data_restrictions = reject_unauth_pipelining smtpd_reject_unlisted_recipient = yes smtpd_reject_unlisted_sender = yes smtp_tls_security_level = may smtp_tls_CAfile = $smtpd_tls_CAfile # smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, permit_sasl_authenticated smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated delay_warning_time = 0h maximal_queue_lifetime = 4h bounce_queue_lifetime = 4h proxy_read_maps = $canonical_maps $lmtp_generic_maps $local_recipient_maps $mydestination $mynetworks $recipient_bcc_maps $recipient_canonical_maps $relay_domains $relay_recipient_maps $relocated_maps $sender_bcc_maps $sender_canonical_maps $smtp_generic_maps $smtpd_sender_login_maps $transport_maps $virtual_alias_domains $virtual_alias_maps $virtual_mailbox_domains $virtual_mailbox_maps $smtpd_sender_restrictions smtp_data_init_timeout = 240s smtp_data_xfer_timeout = 600s smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_helo_access pcre:/etc/postfix/helo_access.pcre queue_run_delay = 300s minimal_backoff_time = 300s maximal_backoff_time = 4000s enable_original_recipient = no disable_vrfy_command = yes home_mailbox = Maildir/ allow_min_user = no message_size_limit = 15728640 virtual_minimum_uid = 2000 virtual_uid_maps = static:2000 virtual_gid_maps = static:2000 virtual_mailbox_base = /var/vmail transport_maps = proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf, proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf #virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/catchall_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_catchall_maps.cf virtual_alias_maps = hash:/etc/postfix/virtual sender_bcc_maps = proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_user.cf, proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_domain.cf recipient_bcc_maps = proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_user.cf, proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_domain.cf relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql/relay_domains.cf smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql/sender_login_maps.cf smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_authenticated_header = no smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service inet:127.0.0.1:7777, check_policy_service inet:127.0.0.1:10031, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access hash:/etc/postfix/whitelist_recipients smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031 smtpd_tls_security_level = may smtpd_tls_loglevel = 0 smtpd_tls_CAfile = /etc/ssl/certs/iRedMail_CA.pem tls_random_source = dev:/dev/urandom mailbox_command = /usr/lib/dovecot/deliver virtual_transport = dovecot dovecot_destination_recipient_limit = 1 smtpd_sasl_type = dovecot smtpd_sasl_path = ./dovecot-auth content_filter = smtp-amavis:[127.0.0.1]:10024 smtp-amavis_destination_recipient_limit = 1 luser_relay = [email protected] local_recipient_maps =
这是正常的。
如果domain1.com和domain2.com托pipe在谷歌,你不能写在你的服务器virtual_alias_domains。
如果你把它们放在virtual_alias_domains中,你告诉你的后缀他负责这个域,然后他看到他必须发送任何目的地为domain1.com或domain2.com的电子邮件到[email protected]
那就是他在做什么。
请张贴postconf -nf , postconf -Mf的输出,最后dovecot -n 。
有没有办法添加某种白名单,
白名单是一个错误的术语。 (这与垃圾邮件过滤有关。)
但是你为什么不简单地做我说的话呢,评论一下
# virtual_alias_domains = domain1.com,domain2.com
或删除完全相同的行
# @domain1.com [email protected] # @domian2.com [email protected]
评论他们或删除他们。
如果domain1.com,domain2.com托pipe在谷歌,你希望服务器mail.mainserver.com发送这两个域名的电子邮件到谷歌,那么这将不会发生,如果域是真实的,虚拟或别名域服务器mail.mainserver.com。
服务器不会发送它们,因为他觉得这两个域负责。 另外你的/ etc / postfix /虚拟说任何邮件domain1.com应该被转发到[email protected]相同像任何邮件域domian2.com应该被转发到[email protected]。 这就是为什么这两个域名的电子邮件地址在[email protected]的INBOX中。
或强制后缀发送所有电子邮件外部?
如果您想要将所有内容转发到外部,您可以:
a)在你的/ etc / postfix / virtual中添加一个外部邮件
@mail.mainserver.com [email protected]
b)使用.forward文件
c)安装procmail并使用以下内容创build/ etc / procmailrc
# # Forward everything to [email protected] # :0: ! [email protected]
d)如果您感觉更多的是yippee,请安装dovecot / sieve,然后编写规则将所有电子邮件redirect到外部服务器。 筛子有点毛茸茸的configuration,如果你有前3种方法的问题,你prolly不会成功这一个。
# # Forward everything coming from [email protected] # to [email protected] # if address :is ["From"] "[email protected]" { redirect "[email protected]"; stop; }
也许还有其他的方法,但是这些在我看来是最简单的。