You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postfix&Dovecot环境下经外部垃圾过滤器转发的别名/转发账户邮件丢失问题求助

Postfix&Dovecot环境下经外部垃圾过滤器转发的别名/转发账户邮件丢失问题求助

各位大佬好,我已经折腾这个邮件问题两天了,实在没辙了,来求助大家!

我的服务器环境是:

  • CentOS Linux release 7.9.2009
  • Plesk 18.0.50
  • Postfix + Dovecot

目前大部分邮件都能正常收发,但遇到一个诡异的情况:经外部垃圾过滤器(Mail Assure)转发到别名/转发账户的邮件,日志显示已经投递成功,但实际根本不在用户的邮箱里,服务器上也找不到任何痕迹。

具体情况及排查过程

1. 垃圾过滤器日志确认邮件已投递

首先看Mail Assure的日志,明确显示邮件已经成功投递到我的服务器:

1pZZdb-0002Mt-IH
myolddomain.com
2023-03-07 07:54
notify@payments.interac.ca
luke
allowlisted
INTERAC e-Transfer: LUKE PITTMAN cancelled the money transfer sent to you.
delivered

2. 服务器maillog显示Postfix已投递成功

对应服务器上的/var/log/maillog日志,Postfix记录显示邮件通过plesk_virtual服务投递成功:

Mar  7 07:54:29 server postfix/smtpd[27797]: connect from delivery.mtaroutes.com[185.201.16.200]
Mar  7 07:54:30 server postfix/smtpd[27797]: CB260BC4006B: client=delivery.mtaroutes.com[185.201.16.200]
Mar  7 07:54:31 server postfix/cleanup[28935]: CB260BC4006B: message-id=<248542808.92042284.1678204442900@6ea0c801e2d0>
Mar  7 07:54:31 server postfix/qmgr[14249]: CB260BC4006B: from=<notify@payments.interac.ca>, size=62814, nrcpt=1 (queue active)
Mar  7 07:54:31 server postfix/pipe[28941]: CB260BC4006B: to=<luke@myolddomain.com>, relay=plesk_virtual, delay=0.67, delays=0.63/0/0/0.04, dsn=2.0.0, status=sent (delivered via plesk_virtual service)
Mar  7 07:54:31 server postfix/qmgr[14249]: CB260BC4006B: removed
Mar  7 07:54:31 server postfix/smtpd[27797]: disconnect from delivery.mtaroutes.com[185.201.16.200] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=2 quit=1 commands=8

3. 服务器上完全找不到该邮件

我到用户的邮箱目录下搜索这个邮件的队列ID,结果什么都没找到:

-bash-4.2# cd /var/qmail/mailnames/mynewdomain.com/luke
-bash-4.2# grep -R CB260BC4006B ./*
-bash-4.2#

甚至跑到服务器根目录下全局搜索,还是没有任何结果。为了确认搜索命令没问题,我找了一封正常收到的邮件测试,能成功找到:

-bash-4.2# grep -R 134D4BC4006F ./*
./Maildir/cur/1678205924.M212491P6629.server.mydomain.com,S=7790,W=7925:2,: id 134D4BC4006F; Tue,  7 Mar 2023 08:18:44 -0800 (PST)

4. 更诡异的对比测试

当我跳过外部垃圾过滤器,直接给这个别名/转发账户发邮件时,maillog里的记录几乎一模一样,但邮件能正常出现在用户邮箱里!这说明问题大概率出在垃圾过滤器对邮件的修改上——可能是添加了某些特殊头信息,或者修改了邮件内容,导致plesk_virtual服务把邮件悄悄丢弃了,但我实在找不到线索。

附上Postfix配置信息

postconf -n 输出

alias_maps = hash:/etc/aliases, nis:mail.aliases, hash:/var/spool/postfix/plesk/aliases
authorized_flush_users =
authorized_mailq_users =
command_directory = /usr/sbin
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailman_destination_recipient_limit = 1
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 51200000
meta_directory = /etc/postfix
mydestination = localhost.$mydomain, localhost, localhost.localdomain
mynetworks =
newaliases_path = /usr/bin/newaliases.postfix
plesk_virtual_destination_recipient_limit = 1
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-3.5.14/README_FILES
recipient_canonical_classes = envelope_recipient,header_recipient
recipient_canonical_maps = tcp:127.0.0.1:12346
recipient_delimiter =
sample_directory = /usr/share/doc/postfix-3.5.14/samples
sender_dependent_default_transport_maps = hash:/var/spool/postfix/plesk/sdd_transport_maps
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_send_xforward_command = yes
smtp_tls_security_level = may
smtp_use_tls = no
smtpd_authorized_xforward_hosts = 127.0.0.0/8 [::1]/128
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
smtpd_milters = inet:127.0.0.1:12768
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sender_restrictions = check_sender_access hash:/var/spool/postfix/plesk/blacklists, permit_sasl_authenticated
smtpd_tls_cert_file = /etc/postfix/postfix.pem
smtpd_tls_ciphers = medium
smtpd_tls_dh1024_param_file = /usr/local/psa/etc/dhparams2048.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = TLSv1.2
smtpd_tls_protocols = TLSv1.2
smtpd_tls_security_level = may
smtpd_use_tls = yes
smtputf8_enable = no
tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
tls_preempt_cipherlist = yes
tls_server_sni_maps = hash:/var/spool/postfix/plesk/certs
tls_ssl_options = no_compression
transport_maps = , hash:/var/spool/postfix/plesk/transport
unknown_local_recipient_reject_code = 550
virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
virtual_gid_maps = static:30
virtual_mailbox_base = /var/qmail/mailnames
virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
virtual_mailbox_limit = 0
virtual_mailbox_maps = , hash:/var/spool/postfix/plesk/vmailbox
virtual_transport = plesk_virtual
virtual_uid_maps = static:30

postconf -M 输出

smtp       inet  n       -       n       -       -       smtpd
cleanup    unix  n       -       n       -       0       cleanup
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp -o syslog_name=postfix/$service_name
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache
postlog    unix-dgram n  -       n       -       1       postlogd
plesk_virtual unix -     n       n       -       -       pipe flags=DORhu user=popuser:popuser argv=/usr/lib64/plesk-9.0/postfix-local -f ${sender} -d ${recipient} -p /var/qmail/mailnames -q ${queue_id}
127.0.0.1:12346 inet n   n       n       -       -       spawn user=popuser:popuser argv=/usr/lib64/plesk-9.0/postfix-srs
mailman    unix  -       n       n       -       -       pipe flags=R user=mailman:mailman argv=/usr/lib64/plesk-9.0/postfix-mailman ${nexthop} ${user} ${recipient}
pickup     fifo  n       -       n       60      1       pickup
qmgr       fifo  n       -       n       1       1       qmgr
smtps      inet  n       -       n       -       -       smtpd -o smtpd_tls_wrappermode=yes
submission inet  n       -       n       -       -       smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=may -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
plesk_saslauthd unix y   y       n       -       1       plesk_saslauthd status=5 listen=6 dbpath=/var/spool/postfix/plesk/passwd.db
plesk-158.69.12.128- unix - -    n       -       -       smtp -o smtp_bind_address=158.69.12.128 -o smtp_bind_address6= -o smtp_address_preference=ipv4
plesk-54.39.48.83- unix - -      n       -       -       smtp -o smtp_bind_address=54.39.48.83 -o smtp_bind_address6= -o smtp_address_preference=ipv4

现在我已经把能想到的排查步骤都做了,实在摸不清问题出在哪,有没有大佬能给点排查方向或者思路?感激不尽!

备注:内容来源于stack exchange,提问作者Luke Pittman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:49:27