Outlookから外部へ送った添付が受信側でWinmail.datになる問題は、Exchange Onlineが送信するMicrosoft固有のTNEF形式を相手側クライアントが展開できないときに起こります。情シスが一括で防ぐ本命は、Exchange Online PowerShellで送信先Remote DomainのTNEFを無効化することです。利用者全員の作成形式をプレーンテキストへ固定する方法ではありません。まず読み取りだけで現状を保存し、問題がある相手ドメインだけを対象にし、外部受信者へ試験送信してから範囲を広げます。
最初から既定のRemote Domain「Default(*)」を変更すると全外部宛てに影響します。特定パートナーだけで発生しているなら、そのSMTPドメイン専用のRemote Domainを作る方が安全です。
原因と、設定の優先関係を理解する
TNEFはリッチテキスト、添付、会議や投票などOutlook固有のMAPIプロパティを運ぶ形式です。相手がTNEF非対応だと、添付本体がWinmail.datの中に見えたり、書式や会議情報の一部を扱えなかったりします。TNEFEnabled は三値で、$true は常にTNEF、$false はTNEFを使わない、$null はRemote Domainで決めず、メールユーザー/メール連絡先の UseMapiRichTextFormat、Outlookの受信者別Internet format、送信者の既定形式へ判断を委ねます。
そのため、$null のままでは古い連絡先やオートコンプリートの受信者別設定により一人だけ再発することがあります。反対にRemote Domainを $false にすると、その宛先ドメインでは受信者別のTNEF指定より管理者側の禁止を優先できます。ただしHTMLをプレーンテキストへ変換する設定ではなく、通常のMIMEへ変換する制御です。
1. 変更前にGet-RemoteDomainで読み取る
Exchange Online PowerShellへ、Remote Domainsを管理できる最小限の役割で接続します。まず変更を伴わないコマンドだけを実行し、Defaultと個別ドメインの重複、DomainName、TNEFEnabledをチケットへ保存します。相手が mail.partner.example を使っていても、実際の宛先SMTPドメインが partner.example なら後者を対象にします。表示名だけで判断しません。
Get-RemoteDomain | Sort-Object DomainName |
Format-Table Name,DomainName,TNEFEnabled,IsInternal -Auto
$before = Get-RemoteDomain -Identity "Partner Example" |
Select-Object Name,DomainName,TNEFEnabled
$before.TNEFEnabled が空欄なら値は $null です。画面の文字列ではなくPowerShellオブジェクトとして保持し、変更対象のIdentity、実行者、時刻も記録します。既存のRemote Domainには自動応答、転送、文字セットなど別のメールフロー設定が含まれるため、TNEF以外を上書きする一括コマンドは使いません。
2. 適用範囲を選ぶ
- 特定会社だけでWinmail.datが出る:その単一SMTPドメイン用Remote Domainを作成または更新する。
- 同じ会社の複数サブドメインが対象:実際の宛先を列挙し、必要なら個別定義を追加する。広いワイルドカードは誤対象をレビューする。
- 全外部宛てで互換性を優先:Default(DomainNameが*)を候補にするが、会議、投票、カスタムフォーム、外部業務連携を全社パイロットで確認する。
- ハイブリッド:最終的に外部配送するExchange組織側を変更する。クラウドとオンプレミスの両方を無条件に変えない。
3. Remote Domainを作成または更新する
該当ドメインの定義がない場合
名前は運用者が識別できる一意の値にし、DomainNameは送信先のSMTPドメインへ限定します。作成直後にTNEFだけを無効化します。
New-RemoteDomain -Name "Partner Example - No TNEF" -DomainName partner.example
Set-RemoteDomain -Identity "Partner Example - No TNEF" -TNEFEnabled $false
既存定義がある場合
既存Identityを読み取りで再確認し、そのオブジェクトのTNEFEnabledだけを変更します。Defaultを変える場合もコマンドは同じですが、影響は全外部宛てです。
Get-RemoteDomain -Identity "Partner Example" |
Format-List Name,DomainName,TNEFEnabled
Set-RemoteDomain -Identity "Partner Example" -TNEFEnabled $false
実行後は再度 Get-RemoteDomain を行い、DomainNameが想定どおりでTNEFEnabledがFalse、他のRemote Domain設定が変更前と同じであることを確認します。コマンド成功表示だけで完了にしません。
4. 外部受信者で安全に検証する
- 相手先の協力者と試験時刻を決め、機密でない短い本文と小さなTXT、PDFを新規メールで送る。既存スレッドの返信だけでは受信者別形式を引き継ぐことがある。
- 受信側でWinmail.datが無いこと、元のファイル名・サイズ・内容・日本語が正しいことを確認する。受信したWinmail.datを一般の解凍サイトへ上げない。
- 同じ相手へHTML本文、プレーンテキスト、通常添付、会議依頼・更新・キャンセルを送り、必要な機能を確認する。
- 影響対象外の外部ドメインと社内宛ても各1通確認し、限定設定が他へ漏れていないことを確かめる。
- メッセージ追跡の時刻・Message IDと相手の受信結果を対応させ、24~48時間は添付欠落、不達、会議崩れの問い合わせを監視する。
例外とデータ損失・書式のトレードオフ
TNEFを無効にするとWinmail.dat互換性は改善しますが、Outlook固有の投票ボタン、カスタムフォーム、埋め込みOLE、特定の会議プロパティ、リッチテキストの細部が通常MIMEへ完全には写らない場合があります。これは「見た目だけ」の問題とは限らず、業務アプリがTNEF内プロパティへ依存していれば機能情報を失う可能性があります。重要な相手には添付、会議応答、タイムゾーン、オンライン会議リンク、署名を受入テストします。
相手が正式にTNEF対応で業務上必要な場合は、そのドメインだけ $null または $true を検討できます。ただし受信者一人だけの例外を理由に会社ドメイン全体でTNEFを強制しないでください。個別メールユーザー/連絡先の UseMapiRichTextFormat とOutlookの受信者プロパティを調べ、例外の所有者、期限、再試験日を台帳化します。
正確なロールバック
既存Remote Domainを変更した場合は、変更前に保存した三値へ戻します。元が空欄なら $null を明示します。作成した専用Remote Domainを撤回する場合は、まず対象ドメインへの試験を止め、Defaultが意図した値であることを確認してから、その作成物だけを削除します。
# 既存定義を元の値へ戻す
Set-RemoteDomain -Identity "Partner Example" -TNEFEnabled $before.TNEFEnabled
# 今回新規作成した定義だけを撤回する
Get-RemoteDomain -Identity "Partner Example - No TNEF"
Remove-RemoteDomain -Identity "Partner Example - No TNEF" -Confirm:$true
ロールバック後も Get-RemoteDomain で値を読み取り、同じ外部受信者へ再試験します。設定を戻しても既送信メールは変換し直されないため、添付や会議情報が欠けたメールは原本から安全に再送します。プレーンテキストGPOを併用していた場合は別変更として元のポリシーへ戻し、HTML署名や表が復元したことを確認します。

コメント
コメント一覧 (2件)
HTML形式で使用していましたが、PDFファイルを添付したら携帯側で添付書類winmail.datになっていましたが、TEXT形式で送りなおすと、PDFファイルで受信していました。
今までこんなことは、無かったのですが
受信メールサーバーの設定によってもdat化してしまいます。