我有一个需要发送(内部)电子邮件的应用程序,因此它自然会使用 SMTP。我们的电子邮件服务器是 Microsoft Exchange。
当我在 Outlook 中查看电子邮件时,发件人地址有些不对劲。它显示为正确的 SMTP 地址,而不是 Exchange 联系人(或其他名称...我不知道该怎么称呼它)。
SMTP 交换如下所示:
220 mail.example.com Microsoft ESMTP MAIL Service ready at Thu, 7 Mar 2013 11:04:41 -0500
EHLO HOSTNAME
250-mail.example.com Hello [0.0.0.0]
250-SIZE 15728640
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-AUTH
250-8BITMIME
250-BINARYMIME
250 CHUNKING
MAIL FROM: [email protected]
250 2.1.0 Sender OK
RCPT TO: [email protected]
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
To: Adam Batkin <[email protected]>
From: Adam Batkin <[email protected]>
Subject: Test
Test
.
250 2.6.0 <[email protected]> Queued mail for delivery
但是当我在 Outlook 中查看邮件时,发件人显示为“ ”,而不仅仅是“Adam Batkin”。如果我点击“回复”,也会发生同样的事情。假设邮件发送给了我所在的分发列表,如果我点击“全部回复”,Outlook 无法识别发件人是Adam Batkin <[email protected]>
我的地址(如果消息不是通过 SMTP 发送的,则通常会这样),所以我的地址出现在回复的收件人:列表中。
关于如何格式化 SMTP 消息,以便 Exchange/Outlook 将发件人/收件人识别为内部用户,而不是不透明的 SMTP 电子邮件地址,您有什么想法吗?
答案1
很久以前,Exchange/Outlook 就是这样做的。后来微软意识到这是一个安全漏洞,并将其改为当前的行为。