我有一个收件箱设置作为交换, hello@mycompany.com
此外,还有一个别名news@mycompany.com,因此所有发送到该news地址的电子邮件最终都会出现在hello收件箱中.
理想情况下,我希望能够使用EWS告知发送电子邮件的别名.
当我向news@mycompany.comMicrosoft Outlook 发送电子邮件并检查邮件的Internet标头时,To:标题会读取To: Hello <news@mycompany.com>我想要查看的内容.
但是,使用EWS时,当我查看邮件的ToRecipients属性时,报告的电子邮件地址始终是主SMTP地址的电子邮件地址.此外,Webservices.Data.Item 的InternetMessageHeaders属性不包含该To:属性.我似乎也看不到使用EWSEditor检查消息的所有属性的正确地址.
这个论坛帖子的答案似乎表明,
...有关邮件发送到的实际电子邮件地址的信息存储在收件人集合中,您无法在EWS中访问(在exportmessage之外)...
我将如何以编程方式执行此操作,以便找到正确的To:地址?
exchange-server exchange-server-2007 exchangewebservices ews-managed-api
我正在使用 Microsoft Graph 从特定帐户的收件箱获取信息。该帐户有多个电子邮件别名。但是,即使在我$select查询该InternetMessageHeaders属性后,它也不包含电子邮件发送到的别名。
我发现,如果我还使用 选择并扩展查询singleValueExtendedProperties,我会得到我需要的内容,但现在我丢失了 中存在的一些标头InternetMessageHeaders。它还以一大堆文本的形式返回,看起来不太直接而难以解析。如果我能以某种方式将这个文本块解析为键:值映射,我可以合并这两个值并收工,但我不知道这是否可能。我希望它可以用multiValueExtendedProperties,但我不认为这是它的预期用途。
我正在使用 Microsoft Graph 的 SDK for .NET(当前使用 4.0.0),这是我迄今为止获取所有电子邮件的方法:
public async Task<List<Message>> PollEmails() {
var completeList = new List<Message>();
var messagesRequest = await graphClient.
Users[GraphOptions.AccountId] // Email account ID
.Messages // All Emails
.Request() // Create request w/ authorization & headers needed
.Select("internetMessageHeaders,singleValueExtendedProperties") // Additionally, select the email's headers
.Expand("singleValueExtendedProperties($filter=id eq 'String 0x007D')") // Without this filter, we cannot tell which email alias was …Run Code Online (Sandbox Code Playgroud) c# microsoft-graph-sdks microsoft-graph-mail .net-5 microsoft-graph-api