检测电子邮件收件人的邮件地址是否已编码-EWS API

检测电子邮件收件人的邮件地址是否已编码-EWS API,api,exchangewebservices,Api,Exchangewebservices,我正在使用EWS API从office 365检索电子邮件。当我尝试检索时,将以某种编码格式检索发送邮件收件人电子邮件地址、非ASCII电子邮件地址或Unicode电子邮件地址(api以编码格式返回)。是否有任何属性或类似的东西来检测电子邮件是否真的是编码格式,以便我可以解码 EmailMessage emailMessage; foreach (var recipient in emailMessage.ToRecipients) { ERecipient recip = new E

我正在使用EWS API从office 365检索电子邮件。当我尝试检索时,将以某种编码格式检索发送邮件收件人电子邮件地址、非ASCII电子邮件地址或Unicode电子邮件地址(api以编码格式返回)。是否有任何属性或类似的东西来检测电子邮件是否真的是编码格式,以便我可以解码

EmailMessage emailMessage;

foreach (var recipient in emailMessage.ToRecipients)
{
    ERecipient recip = new ERecipient();                                    
    recip.EmailAddress = recipient.Address;
}

如何识别收件人地址是否实际编码?

邮件地址是BASE64编码,地址中的“B”代表BASE64编码。 类似地,如果电子邮件地址表单为
“=?GH2312?Q?=ae=a3=a3?=”
,则表示正式字符集编码为带引号的可打印字符集

Q-报价可打印

B-BASE64

U-uu编码


根据我的经验,你可以调用解码函数,如果它不是以“=?”开头,以“=”结尾,邮件不是编码,我们不需要解码。

邮件地址是BASE64编码,地址中的“B”代表BASE64编码。 类似地,如果电子邮件地址表单为
“=?GH2312?Q?=ae=a3=a3?=”
,则表示正式字符集编码为带引号的可打印字符集

Q-报价可打印

B-BASE64

U-uu编码


根据我的经验,你可以调用解码函数,如果它不是以“=?”开头,以“=”结尾,邮件不是编码的,我们不需要解码。

你能显示其中一个地址的示例(至少是地址的开头)吗示例电子邮件地址:=?UTF-8?B?2KFZHNIU2FZIN2KOG2KFZHNIK2YOG2KKJZITMGINIT2YYUCDYP9ME2YY2YPDMK2YUG2YZGDM2KGC2KFZLNMF?=@test.com。能否显示其中一个地址的示例(至少是地址的开头)示例电子邮件地址:=?UTF-8?B?2KFZHNIU2FZIN2KKFZHNIK2YG2KJZITMGINIT2YYUCDYP9ME2YLYSDIN2ZPZHIDYP9ME2YPDMK2YUG2YZGDMZYH2YXZHYDZHD2KCG2KFZLNMF?=@test.com.Ya是的……如果我解码邮件,我可以获得正确的邮件id。在我解码之前,我需要检查电子邮件是否已编码,我可以使用regex,但我的问题是API是否提供任何属性来说明电子邮件是否已编码?您可以尝试获取“ContentType”参数,它代表文档的类型。是的……如果我解码邮件,我可以得到正确的邮件id。在我解码之前,我需要检查电子邮件是否编码,我可以使用regex,但我的问题是API是否提供任何属性来告诉电子邮件是否编码?您可以尝试获取“ContentType”参数,它表示文档的类型。