【问题标题】:Alias forwarding: "550 mailbox unavailable", Receiving and sending works fine别名转发:“550邮箱不可用”,收发正常
【发布时间】:2016-09-24 02:12:49
【问题描述】:

大家好!

我遇到了麻烦,希望你能帮忙!

多年来,我一直在使用我的 VPS (ubuntu 14.04)exim4/dovecot,没有出现任何问题。 一种常见的用途是从 gmx.de 地址接收邮件(发送到我域上的别名),并通过别名设置将其分发到一些 web.de 地址以及我域上的地址。

应该是这样的:ORIGIN -> ALIAS@MYDOMAIN -> (DEST1, DEST2,...)

从昨天开始,这个“别名转发”就不再起作用了。这是典型的 exim 日志:

2016-05-25 18:12:59 1b5bQZ-0000KU-Kl <= ORIGIN@gmx.de H=mout.gmx.net [212.227.15.18] P=esmtp S=51309 id=ID@mail.gmx.com
2016-05-25 18:12:59 1b5bQZ-0000KU-Kl ** DEST1@web.de <ALIAS@MYDOMAIN.de> R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<ORIGIN@gmx.de> SIZE=53021: host mx-ha03.web.de [212.227.15.17]: 550-Requested action not taken: mailbox unavailable 550-Reject due to SPF policy. 550-The originating IP of the message is not permitted by the domain owner.
2016-05-25 18:12:59 1b5bQZ-0000KU-Kl ** DEST2@web.de <ALIAS@MYDOMAIN.de> R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<ORIGIN@gmx.de> SIZE=53021: host mx-ha03.web.de [212.227.15.17]: 550-Requested action not taken: mailbox unavailable 550-Reject due to SPF policy. 550-The originating IP of the message is not permitted by the domain owner.
2016-05-25 18:12:59 1b5bQZ-0000KU-Kl ** DEST3@web.de <ALIAS@MYDOMAIN.de> R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<ORIGIN@gmx.de> SIZE=53021: host mx-ha03.web.de [212.227.15.17]: 550-Requested action not taken: mailbox unavailable 550-Reject due to SPF policy. 550-The originating IP of the message is not permitted by the domain owner.
2016-05-25 18:13:00 1b5bQZ-0000Kl-Ud <= <> R=1b5bQZ-0000KU-Kl U=Debian-exim P=local S=53469
2016-05-25 18:13:00 1b5bQZ-0000KU-Kl Completed

如果我使用 web.de 地址作为 ORIGIN 进行测试,也会发生同样的情况,而 gmail 地址或来自 MYDOMAIN 的地址作为 ORIGIN 可以正常工作。

重要 似乎只是别名的问题。我可以从例如发送邮件web.de 到 ADDRESS@MYDOMAIN,反之亦然。

我的 MX 指向了正确的位置(显然,因为它现在已经工作了很长时间)并且我检查了我的 IP 和 DOMAIN 不在 web.de/gmx.de 的垃圾邮件库中。

非常欢迎任何建议!

最好的,Bb

【问题讨论】:

    标签: email smtp exim


    【解决方案1】:

    似乎 GMX 最近开启了严格的 SPF 检查,这导致转发邮件失败。您会在 mail.log 中看到类似的内容

     to=<mailaddress@gmx.de>, orig_to=<mailaddress@mydomain.com>, relay=mx00.emig.gmx.net[212.227.15.9]:25, delay=0.15, delays=0/0.02/0.12/0.01, dsn=5.0.0, status=bounced (host mx00.emig.gmx.net[212.227.15.9] said: 550-Requested action not taken: mailbox unavailable 550-Reject due to SPF policy. 550-The originating IP of the message is not permitted by the domain owner. 550 For explanation visit http://postmaster.gmx.com/en/error-messages?ip=127.0.0.10&c=spf (in reply to MAIL FROM command))
    

    就像 L. Gleim 指出的那样,SRS 和安装 postsrsd 是解决方案。

    还有一个适用于 Ubuntu 的 PPA,因此可以通过以下方式完成 Ubuntu 安装

    sudo add-apt-repository ppa:roehling/latest
    sudo apt-get update
    sudo apt-get install postsrsd
    
    sudo postconf -e "sender_canonical_maps = tcp:127.0.0.1:10001"
    sudo postconf -e "sender_canonical_classes = envelope_sender"
    sudo postconf -e "recipient_canonical_maps = tcp:127.0.0.1:10002"
    sudo postconf -e "recipient_canonical_classes = envelope_recipient,header_recipient"
    sudo postfix reload
    

    这让我可以再次将邮件转发到 GMX。

    【讨论】:

    • 感谢基于 PPA 的解决方案。我的邮件转发到 GMX 又可以正常工作了。
    【解决方案2】:

    正如 Hans-Martin 所指出的,SPF 中断了电子邮件转发,正如 here 所解释的那样。然而,这根本不是一个愚蠢的决定,因为它基本上是唯一能够有效消除垃圾邮件的方法。

    解决此问题需要您配置 SRS(发件人重写方案)。

    引用postsrsd README

    假设您的服务器从 alice@example.com 收到一封要转发的邮件。如果 example.com 使用发件人策略框架来指示所有合法邮件均来自其服务器,则您转发的邮件可能会被退回,因为您无权代表 example.com 发送。解决方案是将地址映射到您自己的域,例如SRS0+xxxx=yy=example.com=alice@yourdomain.org(转发 SRS)。如果邮件稍后被退回并且通知到达,您可以从重写的邮件中提取原始地址(反向SRS)并将通知返回给发件人。您可能会注意到反向 SRS 可能会被滥用以将您的服务器变成开放中继。因此,xxxx 和 yy 是加密签名和时间戳。如果签名不匹配,地址是伪造的,邮件可以被丢弃。

    在 Debian 8 上设置 postsrsd(在 Ubuntu 上应该非常相似):

    # Dependencies.
    sudo apt-get install unzip cmake
    
    # Download and extract source code from GitHub.
    cd /tmp
    curl -L -o postsrsd.zip https://github.com/roehling/postsrsd/archive/master.zip
    unzip postsrsd.zip
    
    # Build and install.
    cd postsrsd-master
    cmake -DCMAKE_INSTALL_PREFIX=/usr
    make
    sudo make install
    
    # Start services
    sudo systemctl enable postsrsd 
    sudo service postsrsd start
    
    # Reconfigure Postfix
    sudo postconf -e "sender_canonical_maps = tcp:127.0.0.1:10001"
    sudo postconf -e "sender_canonical_classes = envelope_sender"
    sudo postconf -e "recipient_canonical_maps = tcp:127.0.0.1:10002"
    sudo postconf -e "recipient_canonical_classes = envelope_recipient,header_recipient"
    sudo postfix reload
    

    【讨论】:

    【解决方案3】:

    GMX 似乎就在昨天 (2016-05-25) 已切换到严格的 SPF 检查,这会中断电子邮件转发。 这是 SPF 长期存在的问题,我不知道 GMX 是否意识到他们通过这个愚蠢的决定拒绝了大量的合法电子邮件。

    【讨论】:

    • 我也刚刚意识到,GMX 在 2016 年 5 月 25 日启用了严格检查。我通过@Holger Schinzel 恢复使用 SRS 配置
    • 由于我无法对 L.Gleim 下面的帖子发表评论,所以我会在这里进行。我同意 SPF 能够消除带有欺骗性发件人地址的垃圾邮件,但到目前为止,它并不是消除垃圾邮件的唯一或最有效的方法。灰名单,阻止来自动态 IP 的未经身份验证的访问,基于 DNS 的阻止列表工作得更好,特别是因为相当一部分垃圾邮件没有欺骗发件人(因此不受 SPF 的影响)。此外,当监控良好并辅以适当的白名单时,误报率非常低。
    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2017-08-01
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多