我必须使用 Sogo 从 Postfix 迁移 Office 365。我的目标是配置 Office 365 与 Postfix 的小型混合,有点像使用 Exchange On-premises 的方式。
目前,postfix 是一个拥有 1000 个用户的主服务器,它发送和接收domain.xyz的所有电子邮件。我已经配置了 Office 365 并向其添加了相同的域。我在上面创建了 2 个邮箱并配置了将domain.xyz设置为 InternalRelay 域的 Exchange Online。
Exchange Online 到目前为止有 2 个帐户
Exchange 配置为,如果 Exchange 上的某人向 domain.xyz 发送电子邮件并且邮箱位于 Exchange 上,则电子邮件应保留在 Exchange 上,但如果 Exchange 找不到 domain.xyz 的邮箱,则应使用我已经使用的传出连接器配置为将电子邮件转发到 postfix。这意味着从 userA 发送到 userB 的任何电子邮件都可以正常工作,但是当 userA 向驻留在 postfix 上的 userC 发送电子邮件时,它会阻止它。
报告错误:554 5.7.1 [email protected]:收件人地址被拒绝:策略拒绝未登录
我的理解是,Postfix 认为它是唯一拥有域 domain.xyz 的服务器,并且它将来自 domain.xyz 的任何电子邮件视为某些用户/服务试图在未经授权的情况下发送电子邮件并拒绝它。这证明了当我们在 Office 365 中创建完全随机的电子邮件时,在 postfix 中没有相应的帐户,并且当我们尝试从 [email protected] 向 [email protected] 发送电子邮件时,我们得到
远程服务器返回“550 5.1.0 [email protected]:发件人地址被拒绝:虚拟邮箱表中的用户未知”
有什么方法可以告诉 postfix (SoGo) 开始信任 Office 365(IP 地址范围)并使其允许接收来自它认为自己拥有的域以及它拥有的帐户的电子邮件。在将 postfix 迁移到 Office 365 的最后一步中,postfix 中的每个帐户将在 O365 中拥有相同的帐户,我们将使用重定向电子邮件 1 个邮箱到 onmicrosoft.com 地址,以确保用户可以使用 O365 而无需担心他们的后缀帐户。但要做到这一点,O365 和 postfix 之间的流量需要正常工作。
我猜这不仅是 Office 365 共存的问题,而且有人会使用的任何服务(例如 SendGrid 或类似服务)都会有相同的问题。
最后 - 我无法访问 postfix/sogo。我只“拥有” o365 方面。我正在尝试向 Linux/Postfix 团队提供意见以解决此问题
我从团队获得的潜在相关配置位,但我自己不知道这是否正确
# HELO restriction
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
# Sender restrictions
smtpd_sender_restrictions =
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_unlisted_sender,
permit_mynetworks,
permit_sasl_authenticated,
check_sender_access pcre:/etc/postfix/sender_access.pcre
#reject_sender_login_mismatch
# Recipient restrictions
smtpd_recipient_restrictions =
reject_unknown_recipient_domain,
reject_non_fqdn_recipient,
reject_unlisted_recipient,
check_policy_service inet:127.0.0.1:7777,
permit_mynetworks,
permit_sasl_authenticated,
#reject_unauth_destination
# Data restrictions
smtpd_data_restrictions = reject_unauth_pipelining
# O365 addresses
mynetworks = 127.0.0.0/8, 40.92.0.0/15, 40.107.0.0/16, 52.100.0.0/14, 104.47.0.0/17
#
# Lookup virtual mail accounts
#
transport_maps =
#regexp:/etc/postfix/transport_regexp
proxy:ldap:/etc/postfix/ldap/transport_maps_user.cf
proxy:ldap:/etc/postfix/ldap/transport_maps_domain.cf
sender_dependent_relayhost_maps =
proxy:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_user.cf
proxy:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_domain.cf
# Lookup table with the SASL login names that own the sender (MAIL FROM) addresses.
smtpd_sender_login_maps =
proxy:ldap:/etc/postfix/ldap/sender_login_maps.cf
virtual_mailbox_domains =
proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf
relay_domains =
$mydestination
proxy:ldap:/etc/postfix/ldap/relay_domains.cf
virtual_mailbox_maps =
proxy:ldap:/etc/postfix/ldap/virtual_mailbox_maps.cf
virtual_alias_maps =
#regexp:/etc/postfix/transport_regexp
proxy:ldap:/etc/postfix/ldap/virtual_alias_maps.cf
proxy:ldap:/etc/postfix/ldap/virtual_group_maps.cf
proxy:ldap:/etc/postfix/ldap/virtual_group_members_maps.cf
proxy:ldap:/etc/postfix/ldap/catchall_maps.cf
proxy:ldap:/etc/postfix/ldap/sender_login_maps.cf
sender_bcc_maps =
proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf
proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_domain.cf
recipient_bcc_maps =
proxy:ldap:/etc/postfix/ldap/recipient_bcc_maps_user.cf
proxy:ldap:/etc/postfix/ldap/recipient_bcc_maps_domain.cf
在 master.cf
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_client_restrictions=permit_sasl_authenticated,permit_mynetworks
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
任何想法都会受到欢迎。