C# 通过EWS发送电子邮件时使用自定义显示名称

C# 通过EWS发送电子邮件时使用自定义显示名称,c#,web-services,email,exchange-server,exchangewebservices,C#,Web Services,Email,Exchange Server,Exchangewebservices,我正在使用EWS(Exchange Web服务)和Exchange 2010在公司内部生成和发送电子邮件。我们目前只有一个邮箱/用户,我们的所有应用程序都通过该邮箱/用户发送名为app 生成电子邮件是没有问题的,但是,当发送测试邮件时,无论代码中设置了什么显示名称,测试邮件都会以exchange中的默认帐户名在收件人邮箱中接收 示例代码: EmailMessage message = new EmailMessage(ExchangeManager.CreateConnection()); /

我正在使用
EWS(Exchange Web服务)
Exchange 2010
在公司内部生成和发送电子邮件。我们目前只有一个邮箱/用户,我们的所有应用程序都通过该邮箱/用户发送名为
app

生成电子邮件是没有问题的,但是,当发送测试邮件时,无论代码中设置了什么显示名称,测试邮件都会以exchange中的默认帐户名在收件人邮箱中接收

示例代码:

EmailMessage message = new EmailMessage(ExchangeManager.CreateConnection());

// set from address as generic application account
message.From = new EmailAddress("app@company.com");

// set custom display name for sender email
message.From.Name = "Test Display Name";

// set send recipient as myself for testing
message.ToRecipients.Add(new EmailAddress("myaccount@company.com"));

ExchangeManager.SendExchangeMessage(message);
收到消息后,它将显示为
app
帐户的默认名称,而不是上面代码中使用的“测试显示名称”。请参见下面outlook收件箱的屏幕截图:

在使用Exchange 2003 STMP服务时,这种方法工作得很好-我们可以根据需要格式化地址,例如“Intranet生成的邮件”或“某些其他应用程序”,等等。现在使用Exchange 2010和EWS时,似乎不允许我们使用此选项来使用自定义显示名称

我还通过调试验证了在发送消息之前是否已成功设置显示名称


有人在EWS/Exchange 2010中成功地使用了自定义显示名称吗?

我使用EWS,但我从来没有手动设置过显示名称,因为我事先在Exchange中对其进行了配置。换言之,在Exchange中更改“应用程序”帐户的显示字段,您不需要在程序中手动设置它。

(用C#术语交谈)通常使用此方法

电子邮件地址()

有一个重载,您可以在其中指定显示名称:

message.From=新电子邮件地址(“自定义显示 名称“,”app@company.com");


请尝试上面的代码,请参见。

很抱歉,这没有帮助-关键是我们使用此帐户从许多应用程序发送邮件,并且希望使用每个应用程序的自定义显示名称。在exchange中将其设置为通用显示名本身将无法满足我们的需要,尽管这可能是最后的手段。但这并不理想,因为来自所有应用程序的邮件在outlook中的排序都是一样的。由于没有其他答案,我将把它标记为答案。我们将在所有应用程序中使用一个通用的电子邮件地址,并为每个电子邮件主题应用一个特定于应用程序的前缀作为解决方法……我同意,似乎没有任何方法可以通过EWS实现您想要的。如果您可以通过SMTP服务器(Exchange 2010集线器是SMTP服务器,但可能有一个严密的防火墙)发送电子邮件,那么您可以轻松地使用自定义的“发件人”头来获取所需内容。我认为这相当于问题中de代码示例中的方法。无论如何,“自定义显示名称”不适用(使用Exchange 2015版进行测试)。