AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 936600
Accepted
ndemou
ndemou
Asked: 2018-10-23 04:19:45 +0800 CST2018-10-23 04:19:45 +0800 CST 2018-10-23 04:19:45 +0800 CST

从 MS Exchange 迁移到 dovecot/postfix 后无法回复旧邮件

  • 772

我们已经成功地从一个古老的 Microsoft Exchange 迁移到 dovecot+postfix 并且一切正常,除了一个特殊情况:

当 Outlook 2016 的用户回复公司内部某人([email protected]) 的旧邮件时,他们会收到来自 Outlook 的传递错误,有时我注意到 Outlook 甚至没有连接到 SMTP 服务器和其他时候它产生一个并得到一个错误(见下文)。如果他们向前点击并手动输入相同的地址([email protected]),一切正常。

返回的未送达通知电子邮件是(从希腊语翻译而来):

We couldn't reach one or more recipients... 
   'Company S.A. John Smith' at 22/10/2018 1:03 pm
Server error: '501 5.1.3 Bad recipient address syntax'" 

并且 postfix 在日志中有这一行:

postfix/smtps/smtpd[3905]: warning: Illegal address syntax from xxx.yyy.local[192.168.0.153] in RCPT command: <Company S.A. John Smith>

拥有 Thunderbird 的用户完全没有问题。Outlook 和 Thunderbird 都使用相同的服务器连接设置(安全 IMAP 和 SMTP)

任何关于这里出了什么问题的想法都将受到高度赞赏。

exchange
  • 2 2 个回答
  • 357 Views

2 个回答

  • Voted
  1. Best Answer
    ndemou
    2018-10-24T07:38:00+08:002018-10-24T07:38:00+08:00

    格式错误的地址来自 Outlook 的名称缓存(.nk2 文件)。您必须删除 .nk2 文件中与交换地址相对应的所有条目。

    就我而言,我使用了 Nirsoft 的免费编辑器来编辑文件。我单击了地址列标题以按地址类型排序,并选择了所有显示的条目EX而不是SMTP. 然后我点击删除并保存。

    感谢大家的有益评论,特别是 joeqwerty 提供的非常有用的链接,它引导我走向正确的方向。

    • 1
  2. kasperd
    2018-10-23T06:20:58+08:002018-10-23T06:20:58+08:00

    日志条目中的目标地址是Company S.A. John Smith。当它抱怨时,Postfix 是正确的,因为电子邮件地址中的空格需要引用,并且地址必须有一个@字符后跟域。

    要查看的相关标准是RFC 5321:

       Forward-path   = Path
    
       Path           = "<" [ A-d-l ":" ] Mailbox ">"
    
       A-d-l          = At-domain *( "," At-domain )
                      ; Note that this form, the so-called "source
                      ; route", MUST BE accepted, SHOULD NOT be
                      ; generated, and SHOULD be ignored.
    
       At-domain      = "@" Domain
    
       Mail-parameters  = esmtp-param *(SP esmtp-param)
    
       Rcpt-parameters  = esmtp-param *(SP esmtp-param)
    
       esmtp-param    = esmtp-keyword ["=" esmtp-value]
    
       esmtp-keyword  = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
    
       esmtp-value    = 1*(%d33-60 / %d62-126)
                      ; any CHAR excluding "=", SP, and control
                      ; characters.  If this string is an email address,
                      ; i.e., a Mailbox, then the "xtext" syntax [32]
                      ; SHOULD be used.
    
       Keyword        = Ldh-str
    
       Argument       = Atom
    
       Domain         = sub-domain *("." sub-domain)
    
       sub-domain     = Let-dig [Ldh-str]
    
       Let-dig        = ALPHA / DIGIT
    
       Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig
    
       address-literal  = "[" ( IPv4-address-literal /
                        IPv6-address-literal /
                        General-address-literal ) "]"
                        ; See Section 4.1.3
    
       Mailbox        = Local-part "@" ( Domain / address-literal )
    
       Local-part     = Dot-string / Quoted-string
                      ; MAY be case-sensitive
    
    
       Dot-string     = Atom *("."  Atom)
    
       Atom           = 1*atext
    
       Quoted-string  = DQUOTE *QcontentSMTP DQUOTE
    

    和RFC 5322:

       atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                           "!" / "#" /        ;  characters not including
                           "$" / "%" /        ;  specials.  Used for atoms.
                           "&" / "'" /
                           "*" / "+" /
                           "-" / "/" /
                           "=" / "?" /
                           "^" / "_" /
                           "`" / "{" /
                           "|" / "}" /
                           "~"
    

    收件人地址中要求@和域的唯一例外是保留地址postmaster可以在没有域的情况下用于向相关邮件服务器的管理员发送电子邮件。

    即使 Postfix 已经放松了足够的解析,不会抱怨这两个语法错误,我猜你可能还没有配置 Postfix 知道如何将电子邮件发送到Company S.A. John Smith.

    接下来的问题是为什么 OutlookRCPT首先会产生这样一个不正确的命令。要了解您需要查看在客户端回复的电子邮件,以了解邮件中的From和Reply-To标头是什么样的。

    • 0

相关问题

  • 如何在使用 RPC over HTTPS 时停止 Outlook 2007 要求提供凭据

  • Exchange 备份的 NT 备份是否会使 Exchange 脱机?

  • 如何在 Exchange 2007 中设置资源邮箱日历的忙/闲权限?

  • Exchange 2007:将带有 SenderID 的邮件移动到垃圾邮件文件夹失败?

  • 如何使用 Exchange 2003 SP2 将垃圾邮件发送到个人垃圾文件夹?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve