ここでは非常に奇妙な問題が発生しています。
次のサンプルメール(生の形式、サニタイズ済み)を見てみましょう。
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--
これは、オンプレミスのメール サーバーから MS365 にメールを受信して中継し、インターネットに再送信するように構成された MS365 の送信コネクタに直接 SMTP 経由で送信されます。
ただし、電子メールが宛先の外部受信者に再送信される間、実際には宛先、差出人、件名などのみが送信されますが、完全に無視するメッセージの実際の内容。これは、Python で MIMEText() テスト メールを直接送信することでも再現されました。
ただし、同じメールを、私がこれを受信している外部メール サーバー (@NOPE
実際のドメインとサーバーがある場所) に直接送信すると、すべてのコンテンツが問題なく送信および中継されます。オンプレミスの Postfix リレー経由で送信し、Sophos アプライアンスを経由して受信サーバーに直接送信する場合も同じことが起こります。
したがって、オンプレミス システムでこのように Exchange Online 経由でメールをルーティングすると、MS365 経由でメールが送信されるため、送信されたメッセージに関係なく、機能しなくなるようです。
MS365 経由でルーティングする必要があり、Microsoft がメッセージ全体を消費してしまうことなくルーティングできないオンプレミスのメール システムまたはソリューションをお持ちの方は他にいらっしゃいますか?
上記の電子メールは、外部からテスト リストに送信され、オンプレミスの Exchange サーバー (オンプレミスのリストサーバーによる Exchange ハイブリッド セットアップ) にルーティングされ、DMARC 準拠のために変更された後、新しいメッセージとして 2 つの外部アドレスに再送信されましたが、受信者側で同じ問題が発生しました。また、内部の MS365 (組織内) 受信者にも同じ問題が発生しています。
繰り返しになりますが、オンプレミスの Postfix 経由では配信は正常に機能しますが、MS365 経由で中継すると機能しません (明らかに電子メールを受け入れ、実際のメッセージ以外のすべてを再送信します)。
答え1
わかりました。どうやら私はこれを理解したようですが、これは Microsoft に怒鳴らなければならないことです。
私の質問のメッセージは、Postfixに送信されるものとOutlook SMTPコネクタに送信されるものとまったく同じです。ただし、違いは、Postfixがメッセージを適切に処理してから再送信することです。どうにかPythonのsmtplibがメール送信を処理する方法とは異なる方法です。メッセージそしてコンテンツは、最初に Postfix サーバーに渡されて処理され、その後 MS365 の送信コネクタ経由で送信されると、適切に配信されます。これは、オンプレミスで実際のメール サーバー (Postfix など) を維持するつもりはなく、メール サーバーと MTA の「仲介者ホップ」を必要とせず、処理のために Microsoft 365 に直接配信したいだけだったので、私たちが望んでいたものではありません。前にエンドポイント クライアントおよびコネクタからメッセージを受信します。
Microsoft 365が直接渡されたメッセージを適切に処理できないのも奇妙だ。Microsoftがそれを処理したい奇妙な形式を持っているのでない限りは。ないRFC 準拠...ただし、それは別の話です。
答え2
あなたのアプリケーションは以下の要件を満たしていますか? Microsoft 365 または Office 365 を使用して電子メールを送信するための多機能デバイスまたはアプリケーションを設定する方法
使ってみるメールメッセージの送信またはテルネットメール サーバーで SMTP をテストし、違いがあるかどうかを確認します。
また、おそらく次のスレッドが役立つでしょう:電子メール stmp office 365 を送信: メッセージが空です