如何使用 windows 的 c# 应用程序管理邮件和附件

How manage mails and attachments with a c# application for windows

我应该创建一个 C# 应用程序来管理我在 Office 365 (Outlook) 上收到的邮件和附件。 在应用程序中,我想 select 您需要从哪些域下载邮件,基于此应用程序仅下载带有附件的相关电子邮件并将它们显示给我。这样我就可以决定打印或不打印什么了。

我需要这个应用程序,因为我必须记录所有来自客户、建筑项目的项目,因此我需要根据客户划分所有内容。 你能告诉我开发这个的最好方法是什么吗? 我的意思是为 Outlook 或其他东西创建 VSTO 是否更好,或者是否有其他方法。我想从正确的方法开始。

我考虑过在客户端安装 Outlook,与 Office 365 同步,创建一个 VSTO 来负责复制感兴趣的电子邮件(select只复制感兴趣的域)并将附件放在不同的文件夹中, 附件有序分组展示。

你能推荐我最好的方法吗? 我的意思是在结构层面(如何设计系统),而不是在代码层面(我想我知道)。

非常感谢

你是对的,你可以开发一个基于 VSTO 的加载项,你可以在其中处理 Application class 的 NewMailEx 事件。对于 Microsoft Outlook 处理的每个接收项目,此事件都会触发一次。该项目可以是几种不同项目类型中的一种,例如 MailItemMeetingItemSharingItem.

NewMailEx event fires when a new message arrives in the Inbox and before client rule processing occurs. You can use the Entry ID returned in the EntryIDCollection array to call the NameSpace.GetItemFromID 方法和处理项目。请谨慎使用此方法,以尽量减少对 Outlook 性能的影响。

要保存附件,您可以使用 MailItem.Attachments property which returns an Attachments object that represents all the attachments for the specified item. Use the Attachment.SaveAsFile 方法将附件保存到指定路径。

 If TypeName(myItem) = "MailItem" Then  
 
 Set myAttachments = myItem.Attachments 
 
 'Prompt the user for confirmation 
 
 Dim strPrompt As String 
 
 strPrompt = "Are you sure you want to save the first attachment in the current item to the Documents folder? If a file with the same name already exists in the destination folder, it will be overwritten with this copy of the file." 
 
 If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then  
   myAttachments.Item(1).SaveAsFile Environ("HOMEPATH") & "\My Documents\" & _  
   myAttachments.Item(1).DisplayName  
 End If 
 
 Else  
   MsgBox "The item is of the wrong type."  
 End If 
 
End Sub

请参阅 Walkthrough: Create your first VSTO Add-in for Outlook 以快速入门。