我已经为我的公司设置了电子邮件服务器,只要通过 Thunderbird 访问电子邮件地址,一切都会正常工作。我的一名员工拥有他们之前拥有的 Outlook 许可证,并且更喜欢使用它。当尝试通过 Outlook 将帐户作为 POP3 连接时,我收到以下日志消息:
Aug 14 04:04:00 ikana dovecot: pop3({employee-email})<240303></Eu1gs6svtFsEUYj>: Disconnected: Logged out top=0/0, retr=0/0, del=0/1, size=963
Aug 14 04:04:00 ikana postfix/submission/smtpd[240304]: connect from <employee IP>
Aug 14 04:04:00 ikana postfix/submission/smtpd[240304]: Anonymous TLS connection established from <employee IP>: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Aug 14 04:04:00 ikana postfix/submission/smtpd[240304]: ADB8717A1CB: client=<employee IP>, sasl_method=PLAIN, sasl_username={employee-email}
Aug 14 04:04:00 ikana postfix/cleanup[240307]: ADB8717A1CB: message-id=<>
Aug 14 04:04:00 ikana opendmarc[229281]: ADB8717A1CB: RFC5322 requirement error: not exactly one Date field
Aug 14 04:04:00 ikana postfix/cleanup[240307]: ADB8717A1CB: milter-reject: END-OF-MESSAGE from <employee IP>: 5.7.1 Command rejected; from=<{employee-email}> to=<{employee-email}> proto=ESMTP helo=<{hostname redacted}>
Aug 14 04:04:00 ikana postfix/submission/smtpd[240304]: disconnect from <employee IP> ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=0/1 commands=6/7
服务器是 Ubuntu Server 20.04 映像。我看到 milter 拒绝了连接,但我不确定这是哪些规则。我目前已安装 Spam Assassin,没有更改规则或分数。
我的 spamass-milter 配置位于/etc/default/spamass-milter
:
# spamass-milt startup defaults
# OPTIONS are passed directly to spamass-milter.
# man spamass-milter for details
# Non-standard configuration notes:
# See README.Debian if you use the -x option with sendmail
# You should not pass the -d option in OPTIONS; use SOCKET for that.
# Default, use the spamass-milter user as the default user, ignore
# messages from localhost
# The domain after the -e option is the default domain to use if the user is logging
# in/sending mail without a full email address. Otherwise, the domain used by the
# client will be passed to spam assassin.
OPTIONS="-e maaonline.net -u spamass-milter -i 127.0.0.1 -R 'Blocked for spam'"
# Reject emails with spamassassin scores > 15.
OPTIONS="${OPTIONS} -r 10"
# Do not modify Subject:, Content-Type: or body.
#OPTIONS="${OPTIONS} -m"
# Scan attachments up to 5MB
OPTIONS="${OPTIONS} -- --max-size=5242880"
######################################
# If /usr/sbin/postfix is executable, the following are set by
# default. You can override them by uncommenting and changing them
# here.
######################################
# SOCKET="/var/spool/postfix/spamass/spamass.sock"
# SOCKETOWNER="postfix:postfix"
# SOCKETMODE="0660"
######################################
我的垃圾邮件刺客配置位于/etc/defaut/spamassassin
:
# /etc/default/spamassassin
# Duncan Findlay
# WARNING: please read README.spamd before using.
# There may be security risks.
# Prior to version 3.4.2-1, spamd could be enabled by setting
# ENABLED=1 in this file. This is no longer supported. Instead, please
# use the update-rc.d command, invoked for example as "update-rc.d
# spamassassin enable", to enable the spamd service.
# Options
# See man spamd for possible options. The -d option is automatically added.
# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --nouser-config --virtual-config-dir=/var/vmail/%d/%l/spamassassin --username=vmail"
# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Otherwise, the init script will not be able to shut spamd down.
PIDFILE="/var/run/spamd.pid"
# Set nice level of spamd
#NICE="--nicelevel 15"
# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin's rules on a nightly basis
CRON=1
我真的不知道 Outlook 此时正在发送什么,也不知道为什么它会遇到问题,而 Thunderbird 却可以毫无问题地登录到帐户。
答案1
感谢 Michael Hampton 的评论,我已解决了这个问题:这与 Spam Assassin 无关,我最初以为是。我忘记了 OpenDMARC 本身就是一个邮件过滤程序,并假设拒绝电子邮件的邮件过滤程序是我刚刚设置的 - Spam Assassin。事实证明,在添加帐户或更改现有帐户的设置时,Outlook 会向正在添加/修改的地址发送默认测试电子邮件,以测试其发送和接收电子邮件的能力。此外,事实证明,这封测试电子邮件没有Date
标题,并且我的 opendmarc 配置已RequiredHeaders
设置为true
,导致它拒绝测试电子邮件,因为它违反了 RFC5322。
Outlook 没有按照规范将当前日期贴在电子邮件上,而是没有在测试电子邮件中包含日期。在 Outlook 上设置帐户后,它确实包含日期设置,因此如果您只有有限数量的用户需要使用 Outlook 进行设置,我想您可以禁用 OpenDMARC 的设置,让所有用户都进行设置,然后重新打开它,因为这样日期应该出现在所有新电子邮件中。