我有一个需要发送(内部)电子邮件的应用程序,所以它自然使用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 <whatever@smtp.example.com> Queued mail for delivery
但是当我在Outlook中查看邮件时,发件人显示为“ Adam Batkin <[email protected]> ”,而不是“Adam Batkin”。 如果我打回复,同样的事情发生。 比方说,邮件被发送到我正在使用的通讯组列表,如果我点击“全部回复”,Outlook无法识别发件人是我的地址(通常情况下,如果邮件不通过SMTP传入) ,所以我的地址出现在答复的收件人列表中。
有关如何格式化SMTP邮件的任何想法,以便Exchange / Outlook将发件人/收件人识别为内部用户,而不是不透明的SMTP电子邮件地址?
很久以前,Exchange / Outlook就是这样做的。 然后,微软意识到这是一个安全漏洞,并将其改变为目前的行为。