Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 阻止Exchange 2013将邮件正文文本/纯文本转换为HTML_C#_Email_Exchange Server_Mailkit_Exchange Server 2013 - Fatal编程技术网

C# 阻止Exchange 2013将邮件正文文本/纯文本转换为HTML

C# 阻止Exchange 2013将邮件正文文本/纯文本转换为HTML,c#,email,exchange-server,mailkit,exchange-server-2013,C#,Email,Exchange Server,Mailkit,Exchange Server 2013,我正在使用MailKit v2.8解析电子邮件中的数据,并使用IMAP连接到Microsoft Exchange 2013帐户。发送到我的Exchange收件箱的邮件正文将在100%的时间内为“文本/普通”。这一过程对于新的电子邮件(已经在生产中使用了几个月)完全可以正常工作,但是这些电子邮件的回复/转发可能是由Exchange在获取时转换为HTML的。服务器上回复电子邮件的标题仍然指定邮件正文为“文本/纯文本”。Outlook也以纯文本显示响应,但由于某些原因,当我尝试使用MailKit获取邮

我正在使用MailKit v2.8解析电子邮件中的数据,并使用IMAP连接到Microsoft Exchange 2013帐户。发送到我的Exchange收件箱的邮件正文将在100%的时间内为“文本/普通”。这一过程对于新的电子邮件(已经在生产中使用了几个月)完全可以正常工作,但是这些电子邮件的回复/转发可能是由Exchange在获取时转换为HTML的。服务器上回复电子邮件的标题仍然指定邮件正文为“文本/纯文本”。Outlook也以纯文本显示响应,但由于某些原因,当我尝试使用MailKit获取邮件摘要的
TextPart
时,返回空值

MailKit电子邮件获取代码:

Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 6 Aug 2020
 17:30:12 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExchangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Thu, 6 Aug 2020 17:30:11 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
X-AuditID: [redacted]
MIME-Version: 1.0
Message-ID: <[redacted]>
From: <[SenderAddr1]>
To: <[MyExchangeAddr]>
Date: Thu, 6 Aug 2020 14:30:03 -0700
Subject: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Return-Path: [SenderAddr1]
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4 via Mailbox
 Transport; Mon, 10 Aug 2020 11:27:16 -0400
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 10 Aug 2020
 11:27:16 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExhcangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Mon, 10 Aug 2020 11:27:15 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
From: <[SenderAddr2]>
To: <[MyExchangeAddr]>, <[SenderAddr1]>
Subject: RE: [redacted]
Thread-topic: [redacted]
Thread-index: [redacted]
Date: Mon, 10 Aug 2020 15:27:07 +0000
Message-ID: <[redacted]>
References: <[redacted]>
In-Reply-To: <[redacted]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-tm-snts-smtp: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Return-Path: [SenderAddr2]
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
X-Auto-Response-Suppress: DR, OOF, AutoReply
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
使用var imap=new ImapClient{
ServerCertificateValidationCallback=(mySender、cert、chain、sslPolicyErrors)=>{return true;},
checkCertificateReliation=false
};
试一试{
等待imap.ConnectAsync(_config.ImapServer、_config.ImapPort、SecureSocketOptions.SslOnConnect);
imap.authenticationMechaniss.Remove(“XOAUTH2”);
等待imap.authenticateSync(_config.ImapUsername,_config.ImapPassword);
var inbox=imap.inbox;
如果(!string.IsNullOrWhiteSpace(_config.Inbox)){//将收件箱设置为devenv的子文件夹
inbox=wait imap.inbox.GetSubfolderAsync(_config.inbox);
}
等待inbox.OpenAsync(FolderAccess.ReadWrite);
var uIds=await inbox.SearchAsync(SearchQuery.All);
var msgs=await inbox.FetchAsync(uIds,MessageSummaryItems.UniqueId | MessageSummaryItems.BodyStructure | MessageSummaryItems.信封);
foreach(msg中的var msg){
var bodyPart=msg.TextBody;//a.Address).Contains)){//从有效地址发送
//解析和处理电子邮件正文
}否则{
//弃绝
}
}
}捕获(例外e){
//日志异常
}
为了简单起见,这里有一个例子。此电子邮件使用MailKit获取时包含文本正文:

Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 6 Aug 2020
 17:30:12 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExchangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Thu, 6 Aug 2020 17:30:11 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
X-AuditID: [redacted]
MIME-Version: 1.0
Message-ID: <[redacted]>
From: <[SenderAddr1]>
To: <[MyExchangeAddr]>
Date: Thu, 6 Aug 2020 14:30:03 -0700
Subject: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Return-Path: [SenderAddr1]
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4 via Mailbox
 Transport; Mon, 10 Aug 2020 11:27:16 -0400
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 10 Aug 2020
 11:27:16 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExhcangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Mon, 10 Aug 2020 11:27:15 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
From: <[SenderAddr2]>
To: <[MyExchangeAddr]>, <[SenderAddr1]>
Subject: RE: [redacted]
Thread-topic: [redacted]
Thread-index: [redacted]
Date: Mon, 10 Aug 2020 15:27:07 +0000
Message-ID: <[redacted]>
References: <[redacted]>
In-Reply-To: <[redacted]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-tm-snts-smtp: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Return-Path: [SenderAddr2]
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
X-Auto-Response-Suppress: DR, OOF, AutoReply
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
接收:由[ExchangeHost]从[ExchangeHost]([ExchangeIP])接收
([ExchangeIP]),具有Microsoft SMTP服务器(TLS)id 15.0.1320.4;2020年8月6日,星期四
17:30:12 -0400
接收:从[SenderHost]([SenderIP])接收
[ExchangeHost]([ExchangeIP]),具有Microsoft SMTP服务器id 15.0.1320.4
通过前端传输;2020年8月6日星期四17:30:11-0400
IronPort SDR:[修订]
X-IronPort-AV:[修订]
试镜:[编辑]
MIME版本:1.0
消息ID:
发件人:
致:
日期:2020年8月6日星期四14:30:03-0700
主题:[修订]
内容类型:文本/纯文本;charset=“us ascii”
内容传输编码:引用可打印
返回路径:[SenderAddr1]
X-MS-Exchange-Organization-AuthSource:[ExchangeHost]
X-MS-Exchange-Organization-AuthAs:匿名
X-GFI-SMTP-提交:1
X-GFI-SMTP-HelloDomain:[发件人主机]
X-GFI-SMTP-RemoteIP:[SenderIP]
X-MS-Exchange-Organization-Network-Message-Id:[修订]
X-MS-Exchange-Organization-AVStamp-Enterprise:1.0
此电子邮件标题是对上述电子邮件的回复。在MailKit中获取时,它没有文本体,而是有一个HtmlBody:

Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 6 Aug 2020
 17:30:12 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExchangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Thu, 6 Aug 2020 17:30:11 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
X-AuditID: [redacted]
MIME-Version: 1.0
Message-ID: <[redacted]>
From: <[SenderAddr1]>
To: <[MyExchangeAddr]>
Date: Thu, 6 Aug 2020 14:30:03 -0700
Subject: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Return-Path: [SenderAddr1]
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4 via Mailbox
 Transport; Mon, 10 Aug 2020 11:27:16 -0400
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 10 Aug 2020
 11:27:16 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExhcangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Mon, 10 Aug 2020 11:27:15 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
From: <[SenderAddr2]>
To: <[MyExchangeAddr]>, <[SenderAddr1]>
Subject: RE: [redacted]
Thread-topic: [redacted]
Thread-index: [redacted]
Date: Mon, 10 Aug 2020 15:27:07 +0000
Message-ID: <[redacted]>
References: <[redacted]>
In-Reply-To: <[redacted]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-tm-snts-smtp: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Return-Path: [SenderAddr2]
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
X-Auto-Response-Suppress: DR, OOF, AutoReply
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
接收:由[ExchangeHost]从[ExchangeHost]([ExchangeIP])接收
([ExchangeIP]),通过邮箱使用Microsoft SMTP服务器(TLS)id 15.0.1320.4
运输;2020年8月10日星期一11:27:16-0400
接收:由[ExchangeHost]从[ExchangeHost]([ExchangeIP])接收
([ExchangeIP]),具有Microsoft SMTP服务器(TLS)id 15.0.1320.4;2020年8月10日,星期一
11:27:16 -0400
接收:从[SenderHost]([SenderIP])接收
[ExchangeHost]([ExhcangeIP]),具有Microsoft SMTP服务器id 15.0.1320.4
通过前端传输;2020年8月10日星期一11:27:15-0400
IronPort SDR:[修订]
X-IronPort-AV:[修订]
发件人:
致:,
主题:RE:[修订]
线程主题:[已编辑]
线程索引:[已编辑]
日期:2020年8月10日星期一15:27:07+0000
消息ID:
参考资料:
答复:
接受语言:en US
内容语言:en US
X-MS-Has-Attach:
X-MS-TNEF-相关器:
x-ms-exchange-messagesentrepresentingtype:1
x-ms-exchange-transport-fromentityheader:托管
x-tm-snts-smtp:[修订]
内容类型:文本/纯文本;charset=“us ascii”
内容传输编码:引用可打印
MIME版本:1.0
返回路径:[SenderAddr2]
X-GFI-SMTP-提交:1
X-GFI-SMTP-HelloDomain:[发件人主机]
X-GFI-SMTP-RemoteIP:[SenderIP]
X-MS-Exchange-Organization-Network-Message-Id:[修订]
X-MS-Exchange-Organization-AVStamp-Enterprise:1.0
X-Auto-Response-Suppress:DR、OOF、AutoReply
X-MS-Exchange-Organization-AuthSource:[ExchangeHost]
X-MS-Exchange-Organization-AuthAs:匿名
来自MailKit的后一封电子邮件的HTMLBody:

Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 6 Aug 2020
 17:30:12 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExchangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Thu, 6 Aug 2020 17:30:11 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
X-AuditID: [redacted]
MIME-Version: 1.0
Message-ID: <[redacted]>
From: <[SenderAddr1]>
To: <[MyExchangeAddr]>
Date: Thu, 6 Aug 2020 14:30:03 -0700
Subject: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Return-Path: [SenderAddr1]
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4 via Mailbox
 Transport; Mon, 10 Aug 2020 11:27:16 -0400
Received: from [ExchangeHost] ([ExchangeIP]) by [ExchangeHost]
 ([ExchangeIP]) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 10 Aug 2020
 11:27:16 -0400
Received: from [SenderHost] ([SenderIP]) by
 [ExchangeHost] ([ExhcangeIP]) with Microsoft SMTP Server id 15.0.1320.4
 via Frontend Transport; Mon, 10 Aug 2020 11:27:15 -0400
IronPort-SDR: [redacted]
X-IronPort-AV: [redacted]
From: <[SenderAddr2]>
To: <[MyExchangeAddr]>, <[SenderAddr1]>
Subject: RE: [redacted]
Thread-topic: [redacted]
Thread-index: [redacted]
Date: Mon, 10 Aug 2020 15:27:07 +0000
Message-ID: <[redacted]>
References: <[redacted]>
In-Reply-To: <[redacted]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-tm-snts-smtp: [redacted]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Return-Path: [SenderAddr2]
X-GFI-SMTP-Submission: 1
X-GFI-SMTP-HelloDomain: [SenderHost]
X-GFI-SMTP-RemoteIP: [SenderIP]
X-MS-Exchange-Organization-Network-Message-Id: [redacted]
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
X-Auto-Response-Suppress: DR, OOF, AutoReply
X-MS-Exchange-Organization-AuthSource: [ExchangeHost]
X-MS-Exchange-Organization-AuthAs: Anonymous

在Outlook中,后一封电子邮件的格式为纯文本,就像其标题指定的内容类型一样。由于邮件在Outlook中的格式正确,我的问题是:

  • 使用MailKit时,我需要做些什么来防止这种转换发生
  • (我怀疑更有可能)我的系统管理员是否需要为Exchange帐户设置一些选项以防止发生这种自动转换
  • 我已经阅读了解决方案和其他主题,但它们似乎都不适用于今天,因为在这个主题上提出的任何问题都有将近十年的历史

  • IMAP(及其MailKit)无法指定不进行任何转换,只是假设不会进行任何转换,因为其他IMAP服务器不会这样做
  • 2013年可能也存在同样的Exchange 2003选项

  • 因此,我发现Exchange出现问题的原因是我为了测试目的复制了收到的电子邮件。尽管重复的电子邮件具有相同的标题,但Exchange在使用MailKit获取邮件时仅将复制的邮件转换为HTML。然而,原稿正如期取回。为便于将来参考,请不要复制/粘贴它们