postfix がすべてのメールを Office365 経由で中継する問題

postfix がすべてのメールを Office365 経由で中継する問題

これはかなり長い質問で、試したことや苦労したことが長々と書かれていますが、どうか我慢してください。要約すると次のようになります。

  1. postfix を使用して、ubuntu から office365 経由で電子メールを中継できます。設定は機能します。
  2. これはユーザーの1人としてのみ機能します。具体的には、Office365に対して認証するユーザーのみが有効な「送信元」です。

詳細は後述します。Amazon のクラウドにマシンがあり、そこで多数のジョブを実行しており、ステータスをメールで受け取りたいと思っています。職場では Office365 を使用しているため、メールを Office365 経由で中継したいと考えています。私は postfix に最も精通しているので、それを MTA として使用しました。

設定はubuntu 12.04LTS、postfix と mail-utils をインストールしました。

この例では、私の会社は「company.com」で、問題のマシン(エラスティックIPとDNSエントリ経由)は「plaything.company.com」と呼ばれています。ホスト名は「plaything.company.com」に設定されているため、/etc/mailname

playthingには、、、というユーザーが登録されていますalphabravocharlie

以下の設定ファイルがあります。

alias_database = ハッシュ:/etc/aliases
alias_maps = ハッシュ:/etc/aliases
append_dot_mydomain = いいえ
ビフ = いいえ
config_directory = /etc/postfix
inet_interfaces = すべて
inet_protocols = ipv4
メールボックスのサイズ制限 = 0
mydestination = plaything.company.com、localhost.company.com、、localhost
ホスト名 = plaything.company.com
マイネットワーク = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = いいえ
受信者区切り文字 = +
リレーホスト = [smtp.office365.com]:587
sender_canonical_maps = ハッシュ:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = はい
smtp_sasl_password_maps = ハッシュ:/etc/postfix/sasl_passwd
smtp_sasl_security_options = 匿名なし
smtp_sasl_tls_security_options = 匿名なし
smtp_tls_CAファイル = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = はい
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = はい

マシンの名前が付けられているため、plaything.company.com適切な DNS エントリをすべて登録して、office365 に自分が所有していることを認識させ、 office365 でplaything.company.comという名前のユーザーを作成できるようにしました。[email protected]

Office365 では、[email protected]別のメール アドレスとして設定しました[email protected]

そして、次のsender_canonicalを作成しました

[メールアドレス] [メールアドレス]

次のような sasl_passwd ファイルを作成しました:

smtp.office365.com [email protected]:123456password123456

パスワード[email protected]1234...456

この設定をすべて済ませて、ログインしalpha

郵便[メールアドレス]
CC:
件名: テスト
テスト

すべてがうまく機能しています。メールはPostfixで送信され、TLSはうまく機能し、認証も行われますdaemon@...[メールアドレス]Office365 で電子メール メッセージが届きます。

問題はbravoマシンにログインしたときに発生します。

送信者は[email protected]、Office365 では次のように表示されます:

ステータス=バウンス (ホスト smtp.office365.com[132.245.12.25] が次のように言いました:
550 5.7.1 クライアントに送信権限がありません
この送信者(DATAコマンドの終了に対する応答)

bravo@...これは、 としてメールを送信し、 として office365 で認証しようとしているためですdaemon@...。 で機能する理由はalpha@...、office365 で[email protected]という別のメール アドレスを持つように設定したためです[email protected]


Office365 への Postfix リレーマイルズ・エリクソンこの質問には次のように答えます。

  1. Office365でホストされている電子メールドメインのユーザーとしてOffice365にメールを送信しないでください。代わりにサブドメインを使用してください。例:[メールアドレス]の代わりに[メールアドレス]services.mydomain.com または使用するドメインの SPF レコードを設定しても問題ありません。

  2. Office365 ユーザーとして mail.messaging.microsoft.com に対して認証しないでください。ポート 25 に接続し、外部の SMTP エージェントと同じようにメールをドメインに配信します。

OK、1 番は実行しました。DNS にそれらのレコードがありますが、Office365 が私がドメインを所有していることを認識すると、それらはほとんど関係なくなります。

その記録は次のとおりです。

CNAME レコード: - msoid.plaything.company.com - autodiscover.plaything.company.com

MX レコード: - plaything.company.com (plaything-company-com.mail.protection.outlook.com)

TXT レコード: - plaything.company.com (v=spf1 include:spf.protection.outlook.com -all)

2 番を試しましたが、何をしても、office365 は「認証されていません」と表示して接続を破棄します。ポート 25 への単純な Telnet を試して送信しようとしても、機能しません。

250 BY2PR01CA007.outlook.office365.com Hello [54.221.245.236] 
530 5.7.1 Client was not authenticated 
Connection closed by foreign host.

Linux マシン上の複数のユーザーが Office365 経由で postfix を使用してメールを中継できるような構成を使っている人はいませんか? 誰かこれを実行している人がいて、私の設定のどこが間違っているのか教えてくれるはずです...

答え1

少し立ち止まって考える必要があると思います :)

playthingとしてログインしている場合bravo、plaything から送信されるすべてのメールを として送信する必要がありますか[email protected]? そうでない場合は、すべてのメールを として送信してください[email protected]実際のインターネットホスト名を持たないホスト上のPostfix

これを適用できない場合は、送信者依存の SASL マップセットアップが複雑になるため、これを避けるように努力してください。

最後に、playthingがメールを として送信する場合、 を調整するか、設定を削除するか、あるいはその両方を[email protected]行う必要があります。 この場合、 はメール サーバーの評判などの長所と短所をすべて考慮して、すべてのメールを直接配信します。myhostnamemyoriginrelayhostplaything

関連情報