有没有一种方法可以以编程方式将大文件附加到 Outlook 邮件,尽管它超过了服务器大小限制?

Is there a way I can programmatically attach a large file to an outlook message despite it exceeding the server size limit?

如果您遇到此问题并希望得到解决方案,请快速说明....没有解决方案。可悲的是,有时人们不得不接受一个问题的正确答案是“你不能那样做”。

我希望我可以在这里做些什么来确保将大文件附加到 Outlook.MailItem 的工作方式与手动操作完全相同。

准确地说...当用户在 Outlook 中撰写一封电子邮件并且他们将一个太大的文件附加到电子邮件中时,Outlook 会很乐意将该文件附加到电子邮件中。它不会简单地拒绝这样做,而是会附加文件并在检查器中显示一条消息:

然而....

在编写类似操作代码时,您将获得对 Outlook.MailItem 的访问权限,并在其 .Attachments 对象上调用 .Add 方法

oMailObject.Attachments.Add("<path to a file that is way too big here>")

问题是该操作失败了。抛出一个错误 “您附加的文件大于服务器允许的大小。请尝试将文件放在共享位置并改为发送 link。”

是的,我们显然可以捕捉到错误,然后向用户显示一条消息。这就是我们目前正在做的。但是,如果有一种方法可以防止它引发错误,它会更好,这样它仍然会将文件附加到 MailItem,然后当我向用户显示检查器时,他们会看到与他们看到的相同的东西如果他们手动附加了附件。

MailItem 上是否有防止它引发错误的选项? Attachments.Add 方法中有什么东西?有什么建议吗?

您可以从商店(使用 Store.PropertyAccessor.GetProperty)读取 PR_MAX_SUBMIT_MESSAGE_SIZE MAPI 属性(DASL 名称为 "http://schemas.microsoft.com/mapi/proptag/0x666D0003")- 它的大小 returns kB - 在发送消息之前。这个 属性 是 Exchange-specific.

Attachments.Add 方法没有为此提供任何东西。

您可以考虑调整 Outlook 中附件的最大大小。可以使用 windows 注册表项配置常规邮件配置文件。

HKEY_CURRENT_USER\Software\Microsoft\Office\<x.0>\Outlook\Preferences
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\ x.0 \Outlook\Preferences

在那里你可以添加一个值类型:DWORD 值名称:MaximumAttachmentSize 值数据:一个整数,它指定允许的最大附件总大小。例如,指定 30720(十进制)以配置 30 MB 的限制。如果要配置附件无限制,请指定零 (0) 值。

Exchange 帐户需要在 Exchange 端进行配置,请在 Microsoft Exchange Server email account 配置部分阅读更多相关信息。