3

我正在 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) 向用户显示电子邮件以进行任何最终编辑。此时我可以查看属性并看到那里有一个附件。

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

4

4 回答 4

4

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

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

Position 和 DisplayName 参数似乎控制了 olByValue 发生的情况。使用 Type.Missing,现在我可以在电子邮件中正确看到附件。

于 2008-09-29T01:25:53.367 回答
3

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

Attachment.Position 属性

于 2009-08-24T12:50:26.230 回答
0

我和你一样有问题,但即使我像你一样更改代码,但它似乎仍然无法正常工作。同样,它似乎已经在邮件项目中,但未显示在邮件项目显示中。好的,您必须确保 mailItem 正文不为空才能显示附件

于 2012-06-19T01:34:14.227 回答
0

有点旧的帖子,但正如其他一些人提到的,使用

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

也没有帮助我,所以我想我会分享一种替代方法。这个问题的解决方案最终是mailItem.Save();在你打电话之前打电话mailItem.Display(true);。这将刷新 Outlook 表单以显示您的附件。还值得指出的是,它将消息保存到草稿中。如果您希望用户发送电子邮件,这不是问题,但如果他们取消,它将留在他们的草稿文件夹中。

于 2017-09-22T18:06:17.017 回答