Exchange 2016发送给内部中继服务器邮件后收件人显示winmail.dat

简介:


1、前戏

         最近遇到一个问题,Exchange邮箱发送一个带附件的邮件给内部的另外一个非Exchange邮件系统邮箱的用户邮件,收件人收到邮件后不使用Outlook客户端打开邮件时显示为winmail.dat;如果收件人使用Outlook打开则可以正常查看邮件附件。

2、了解这个问题之前我先介绍一下环境情况

          现场环境为WIndows Server 2012 R2+Exchange 2016。AD的域名为contoso.local,Exchange的接收域为:contoso.local(外部中继域)、contoso.com(权威域),域名contoso.local域名为内部一个coremail邮件系统使用的SMTP域名;为了能够让Exchange 2016的邮箱用户能够在OAB中检索到coremail的邮箱用户地址,使用脚本在Exchange上为创建了大量外部SMTP地址为@contoso.local的联系人。

3、为啥会出现这种情况

      通过查找发现在Exchange组织内部发送的邮件格式为TNEF,TNEF(也称为 Outlook RTF 格式或 Exchange RTF 格式)是 Microsoft 特定的用于封装 MAPI 邮件属性的格式。MicrosoftOutlook 的所有版本都能完全理解 TNEF。Outlook Web App 将 TNEF 转换为 MAPI,并显示已设置格式的邮件。但是,不了解 TNEF 的其他电子邮件客户端通常将 TNEF 格式的邮件显示为带有 Winmail.dat 或 Win.dat 附件的纯文本邮件。(具体可以参考:https://technet.microsoft.com/zh-cn/library/bb310786(v=exchg.150).aspx

     换句话说,在Exchange内部的邮件格式是为TNEF,当Exchange将邮件发送到第三方邮件系统时,会将TNEF格式的邮件进行内容格式转换(例如:转换为HTML格式),这样第三方邮件系统接收到邮件后使用非Outlook客户端就能够正常查看邮件内容。

     出现上述这种情况,有两种解决方法:1)、关闭远程接受域的TnefEnabled属性值。(而我的环境中contoso.local为AD域名,无法删除也无设置为远程域,所以此方法行不通)。2)、设置每个Mailuser或Mail contact的属性UseMapiRichTextFormat为Never。

4、解决方法

         

        由于我处理的环境只能使用方法2,下面我还是两种操作方法都说明一下:

   

1)、设置远程接收域

 

1. 打开Exchange Powershell

2. 三方邮件系统所使用的domain(此处,假设您的Exchange smtp domain为contoso.com,三方邮件系统的smtp domain为4thcoffee.com)加入到Exchange的Remote Domain中:

New-RemoteDomain Name 4thCoffee.com -DomainName 4thCoffee.com

3. 运行下方命令检查您此时的Remote Domain配置:

Get-RemoteDomain | Where {$_.TNEFEnabled -ne $false} | Select Name,DomainName,TNEFEnabled

clip_image002[8]

4. 将4thCoffee.com的TNEFEnabled参数设置为False:

Set-RemoteDomain -Identity 4thCoffee.com -TNEFEnabled $false

关于TNEF参数的说明:

The TNEFEnabled parameter specifies whether Transport Neutral Encapsulation Format (TNEF) message encoding is used on messages sent to the remote domain.

参考链接:

Set-RemoteDomain

https://technet.microsoft.com/en-us/library/aa997857(v=exchg.150).aspx

TNEF conversion options

https://technet.microsoft.com/en-us/library/bb310786(v=exchg.150).aspx

2)、设置Mail User和Mail Contact属性UseMapiRichTextFormat为 Never 

   操作单个用户,直接使用命令Set-mailuser identity yangfanit UseMapiRichTextFormat Never   即可完成设置。

image

5、实际环境操作

问题描述:

============================================

       Exchange 2016邮箱用户给contoso.localcoremail用户发送邮件后,coremail邮箱用户收到邮件后,使用非Outlook客户端查看邮件时显示为winmail.dat格式。

 

原因分析:

===============================================

     由于现场环境中Exchange 2016的接收域中存在contoso.local,无法将此接收域删除或者设置为远程域。导致Exchange邮箱用户给域名为@contoso.local的mail User发送邮件时自动启用了TNEF封装格式,而没有转换为HTML格式。(关于TNEF格式可以参考:https://technet.microsoft.com/zh-cn/library/bb310786(v=exchg.150).aspx

 

解决方法:

===============================================

手动将每个mailuserUseMapiRichTextFormat设置为never可以让所有Exchange邮箱给域名@contoso.local发送邮件时删除TNEF封装的格式,这样在Coremail用户使用非Outlook客户端时就能够正常查看邮件。

操作方法如下:

1、 操作单个用户,直接使用命令Set-mailuser identity  test01 UseMapiRichTextFormat Never   即可完成设置。

image

2、 批量设置所有MailuserUseMapiRichTextFormat属性操作方法。使用如下脚本即可设置所有mailuser用户的属性UseMapiRichTextFormat值。

 

#输入Exchange 2016 Powershell连接URL

$ExchangeURI = 'http://CASFQDN.contoso.com/powershell/'

$s=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ExchangeURI -Authentication Kerberos -Name 'ExchangeSession'

Import-PSSession $s

 

Get-MailUser -ResultSize unlimited | Set-MailUser -UseMapiRichTextFormat never

$error | Out-File "c:\scripts\error.txt" -Force -noclobber

 

Remove-PSSession  $s

操作过程:

1)、服务器CAS01.cotoso.comCExchangeScripts上有一个脚本文件Set-mailuserUseMapiRichTextFormat

image

 

2)、运行脚本Set-mailuserUseMapiRichTextFormat

image

 

3)、脚本运行完成后,如果执行过程中有问题,那么会记录在error.txt文件中。

image



本文转自 jialt 51CTO博客,原文链接:http://blog.51cto.com/jialt/1877795


 

 

相关文章
|
4月前
|
算法 数据挖掘 Linux
服务器数据恢复—EXT3文件系统下邮件数据恢复案例
服务器数据恢复环境: 邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统+EXT3文件系统。 服务器故障: 由于误删除导致文件系统中的邮件数据丢失。
|
8月前
|
安全 网络安全 数据安全/隐私保护
阿里云服务器不能发邮件禁用25端口的三种解决方法
阿里云服务器不能发邮件禁用25端口的三种解决方法
984 0
|
9月前
|
安全 网络安全 数据安全/隐私保护
如何配置常用邮箱服务器_云·企业官网 | 常用邮箱配置邮件服务器
本文介绍了邮件服务器的作用,如接收用户留言和表单通知,并提供阿里云企业邮箱、QQ邮箱、腾讯企业邮箱、163邮箱和谷歌邮箱的配置步骤。建议根据服务器所在地选择相应邮箱服务。配置涉及开启SMTP/POP3服务、获取授权码或应用密码,并在网站后台填写邮件服务器地址、SSL设置、账号和端口等信息。
475 0
|
安全 云计算
微软敦促管理员修补本地 Exchange 服务器
微软敦促管理员修补本地 Exchange 服务器
|
Java 关系型数据库 MySQL
James邮件服务器
James邮件服务器
189 0
James邮件服务器
|
网络协议 Linux 网络安全
Linux服务器---邮件服务安装postfix
安装postfix      postfix是一个快速、易于管理、安全性高的邮件发送服务,可以配合dovecot实现一个完美的邮箱服务器。1、安装postfix       [root@localhost ~]# rpm -qa | grep postfix      [root@localhos...
2407 0
|
数据采集 Python
运用阿里云服务器实现Python自动发送HTMl邮件
参加阿里云——飞天加速计划,学会部署服务器并且以Python爬虫为基础,爬取天气网每日天气,并且运用Python yagmail模块以及阿里云服务器实现每日自动发送天气预报
运用阿里云服务器实现Python自动发送HTMl邮件
|
数据安全/隐私保护 C++ Perl
07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)
2.需求描述 客户端需求: 1.客户端每天凌晨1点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置文件) 2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,例如/backup/nfs_192.168.81.210_2020-05-26,其实更好的备份方式/backup/192.168.81.210/nfs_2020-05-26,一会采用后者,要求不只是备份文件,要求连上级目录一并拷过来
207 0
07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)
|
网络协议 物联网 Linux
在阿里云服务器上搭建邮件服务器
一共要搭建三条DNS解释记录
|
网络协议 Linux Perl
在阿里云服务器上搭建邮件服务器
一共需要搭建三条DNS解释记录

热门文章

最新文章