使用 MS365 作為 Python 應用程式的郵件中繼時,電子郵件為空

使用 MS365 作為 Python 應用程式的郵件中繼時,電子郵件為空

我們這裡發生了一個非常奇怪的問題。

以電子郵件為例(原始形式,已清理):

To: [email protected]
From: Thomas Ward via TestList <[email protected]>
Subject: Test Message
Date: Wed, 4 Aug 2021 19:44:49 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="------------EFA1B8DAB3C4E625DD16F705"
Content-Language: en-US
Sender: [email protected]
Reply-To: Thomas Ward <teward@NOPE>
CC: Thomas Ward <teward@NOPE>
Message-ID: <162812069430.22940.8470019517074758016@listserv-server>
List-Id: TestList <[email protected]>
List-Post: <mailto:[email protected]>

--------------EFA1B8DAB3C4E625DD16F705
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Test


--------------EFA1B8DAB3C4E625DD16F705
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Test<br>
    </p>
  </body>
</html>

--------------EFA1B8DAB3C4E625DD16F705--

該郵件透過直接 SMTP 傳送到 MS365 上的發送連接器,該連接器配置為從我們的本地郵件伺服器接收郵件並將其中繼到 MS365,以便重新傳輸到 Internet。

除了...當電子郵件重新傳輸到目標外部收件者時...它實際上只發送收件者、寄件者、主題等,但完全發送忽略訊息的實際內容。這也透過在 Python 中直接提交 MIMEText() 測試電子郵件來複製。

然而,當直接提交到我接收此郵件的外部郵件伺服器(其中將@NOPE是我的實際網域和伺服器)時,同一封電子郵件可以很好地傳輸和中繼所有內容。當我們透過本地 Postfix 中繼進行傳輸時,也會發生相同的情況,該中繼經過 Sophos 設備,然後直接到達收件者伺服器。

因此,使用透過 MS365 發送郵件的本機系統以這種方式透過 Exchange Online 路由任何郵件似乎無法正常運作。無論提交的訊息如何。

是否還有其他人在這裡獲得了需要透過 MS365 進行路由的任何類型的本地郵件系統或解決方案,並且如果不由 Microsoft 完全吞掉郵件就無法實現?

上述電子郵件從外部發送到測試列表,路由到本地 Exchange 伺服器(由於本地列表伺服器而進行 Exchange 混合設定),針對 DMARC 合規性進行修改,然後作為新郵件重新傳輸到兩個外部地址,收件人端也存在同樣的問題。內部 MS365(組織內)收件人也存在同樣的問題。

同樣,透過本地 Postfix 內容傳遞運作正常,但透過 MS365 中繼時則不然(MS365 明確接受了電子郵件並重新傳輸了除實際訊息之外的所有內容)。

答案1

好吧,看起來我已經明白了這一點,但這是我必須向微軟大喊大叫的事情。

我的問題中的消息是逐字發送到 Postfix 以及發送到 Outlook SMTP 連接器的消息。然而,不同之處在於 Postfix 正確處理訊息,然後重新傳輸它不知何故其方式與 Python 的 smtplib 處理郵件傳輸的方式不同。留言它們的內容首先被交給 Postfix 伺服器進行處理,然後透過 MS365 的發送連接器發送出去。這...不是我們想要的,因為我們不想在 Prem、Postfix 或其他方式上維護任何類型的實際郵件伺服器,只想直接交付到 Microsoft 365 進行處理,而不需要「中間人躍點」在郵件伺服器和MTA 中從端點客戶端和連接器接收訊息。

同樣奇怪的是,Microsoft 365 無法正確處理直接傳遞給它的訊息,除非 Microsoft 有某種奇怪的格式想要處理該訊息不是符合 RFC...但這是一場不同的戰鬥。

答案2

您的申請是否符合以下要求? 如何設定多功能裝置或應用程式以使用 Microsoft 365 或 Office 365 發送電子郵件

嘗試使用發送郵件訊息或者遠端登入在您的電子郵件伺服器上測試 SMTP 並查看是否有任何差異。

此外,也許以下線程會有所幫助:傳送電子郵件 stmp Office 365:訊息為空

相關內容