C# Outlook attachments.Add()未显示在邮件正文中

C# Outlook attachments.Add()未显示在邮件正文中,c#,outlook,office-2007,C#,Outlook,Office 2007,我正在C#VS-2008 outlook 2007中创建一个新邮件项目,并附加一个文件。第一个问题是,我没有看到主题行下显示附件的附件区域。如果我发送电子邮件,其属性将显示有附件,并且电子邮件大小随附件数量的增加而增加。我只是看不到它或提取附件 以下是我正在使用的代码: Outlook.MailItem mailItem = (Outlook.MailItem)this.Application.CreateItem(Outlook.OlItemType.olMailItem); attachme

我正在C#VS-2008 outlook 2007中创建一个新邮件项目,并附加一个文件。第一个问题是,我没有看到主题行下显示附件的附件区域。如果我发送电子邮件,其属性将显示有附件,并且电子邮件大小随附件数量的增加而增加。我只是看不到它或提取附件

以下是我正在使用的代码:

Outlook.MailItem mailItem = (Outlook.MailItem)this.Application.CreateItem(Outlook.OlItemType.olMailItem);
attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, 0, "DisplayName");
我希望“DisplayName”部分会显示为附件名,我应该使用文件名

我不会以编程方式对电子邮件调用.Send(),而是调用mailItem.Display(true)将电子邮件显示给用户进行任何最终编辑。在这一点上,我可以看看属性,并看到有一个附件那里


如果我按send(发送给我自己),我会看到相同的内容,附件似乎在那里,但无法访问。

我发现了问题。我将代码更改为使用以下内容:

attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);

Position和DisplayName参数似乎控制olByValue的操作。使用Type.Missing,现在我在电子邮件中正确地看到了附件。

顺便说一句,如果您将位置设置为0,您的附件将被隐藏:


我的问题和你的一样突出,但即使我像你一样修改了代码,但它似乎仍然不起作用。同样,它似乎已经出现在邮件项中,但没有显示在邮件项显示中。
好的,您必须确保mailItem正文不为null,以显示旧帖子的attechment

位,但正如其他一些人提到的,使用

attachments.Add(path, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);
也帮不了我,所以我想我会分享另一种方法。这个问题的解决方案是调用
mailItem.Save()就在调用
mailItem.Display之前(true)。这将刷新outlook表单以显示附件。还值得指出的是,它将把消息保存到草稿中。如果您希望用户发送电子邮件,则这不是问题,但如果用户取消,则该邮件将保留在其草稿文件夹中