2016-02-26 53 views
2

我打算开发一个outlook插件,用于从电子邮件中分离出巨大的附件并将这些附件上传到FTP站点。outlook巨大的附件管理

在我的第一个插件版本中,我完成了Application.ItemSend事件中的所有工作,但是当附件非常巨大(大于1GB)时,此解决方案不令人满意,因为用户上传文件时UI冻结。

一个强制性的要求是,只有在上传到FTP站点完成后才应发送电子邮件。任何关于更好的实现Outlook解决方案的想法?

回答

0

您的意思是说,在上传文件时UI会冻结?上传仍在进行中时显示模式对话框,并在单独的线程上进行实际上传。

+0

是的,当我上传文件时,UI会冻结。当用户点击发送按钮时,将mailitem移动到发件箱文件夹以便Outlook可用于其他任务将会很好。这将是普通邮件的相同行为。附件的上传应该在后台完成,并且mailitem应保留在发件箱文件夹中,直到上传完成。我的问题是我不知道如何在发件箱文件夹中管理这样的邮件项目 – simone

+0

当ItemSend事件触发时,启动一个计时器(您需要脱离事件处理程序才能做一些事情)。当定时器触发时,将其禁用(因此它不会再次触发),将消息移动到发件箱文件夹,保存附件(只能在主线程中执行此操作)并在辅助线程上启动上载。上传完成后,删除附件,调用MailItem.Send(确保不要处理相同的项目两次)。 –