C# 创建邮件发件人对象

C# 创建邮件发件人对象,c#,outlook,C#,Outlook,我正在Outlook 2013中创建电子邮件对象,但找不到如何创建发件人对象。我正在使用以下代码: Outlook.MailItem mail = (Outlook.MailItem) Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem); mail.To = "mail@gmail.com" mail.Sender = // What goes here? mail.Subject =

我正在Outlook 2013中创建电子邮件对象,但找不到如何创建发件人对象。我正在使用以下代码:

Outlook.MailItem mail = (Outlook.MailItem)
         Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem);
mail.To = "mail@gmail.com"
mail.Sender = // What goes here?
mail.Subject = "Mail subject";
Sender对象是Outlook.AddressEntry接口的一个实现,因此必须在某个地方有一个实现,但在哪里?是否可以创建此发件人对象


顺便说一句,电子邮件的发件人不一定是在Outlook中注册的帐户,因此我无法使用
mail.SendUsingAccount
属性进行此操作。

您无法直接设置此属性
Outlook.MailItem.sender

只有在Outlook客户端中配置了多个帐户的情况下,才能将此属性设置为用户的
AddressEntry
对象,该对象由特定帐户的
CurrentUser
属性表示

更多信息:请参见

感谢Dmitry Streblechenko在上面的评论,我可以得到答案,以下是创建
地址条目
并将其分配给
发件人的行:

Outlook.MailItem mail = (Outlook.MailItem) Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem);
Outlook.Recipient recipient = Globals.ThisAddIn.Application.Session.CreateRecipient("mymail@domain.com");
mail.Sender = recipient.AddressEntry;

您正在尝试通过outlook发送电子邮件吗?还是通过exchange服务器?这是不同的。我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。不,我不是试图通过Outlook发送电子邮件。我正在尝试将电子邮件对象保存到文件夹中。好的,但是属性也不是只读的,这意味着它允许设置值。我也在考虑这个问题。我认为它是只读的,以适应多帐户的情况。换句话说,我打赌
Setter
中有一个检查,它验证
地址条目是否在客户的授权帐户列表中。您是否尝试过使用假电子邮件地址创建
地址条目
,并设置
发件人
地址条目
是一个接口,无法创建
地址条目
。它不必是该属性(发件人),它可以是使电子邮件显示发件人值的任何其他属性。接口也是一个对象。文档中说它是一个对象的事实并不意味着它包含实现。是的,它是一个接口,你可以从VS中看到它。AddressEntry对象是来自OOM的AddressEntry接口周围的.Net包装器。AddressEntry对象的实例可以从其他OOM对象(Namespace.AddressList、Namespace.CreateRecipient/Recipient.Resolve/Recipient.AddressEntry等)检索