C#OUTLOOK收取指定邮件附件
时间: 2023-10-19 07:22:29 浏览: 237
以下是使用 C# 从 Outlook 中收取指定邮件附件的示例代码:
```csharp
using System;
using System.IO;
using Microsoft.Office.Interop.Outlook;
namespace OutlookAttachmentDemo
{
class Program
{
static void Main(string[] args)
{
Application outlookApp = new Application();
NameSpace outlookNS = outlookApp.GetNamespace("MAPI");
// 登录邮箱账号
outlookNS.Logon("YourEmailAddress", null, false, false);
MAPIFolder inboxFolder = outlookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
// 搜索指定的邮件
string subject = "Test email";
Items items = inboxFolder.Items.Restrict("[Subject] = '" + subject + "'");
if (items.Count == 0)
{
Console.WriteLine("No email found with subject: " + subject);
return;
}
// 获取第一封符合条件的邮件
MailItem mailItem = (MailItem)items[1];
// 保存邮件附件
foreach (Attachment attachment in mailItem.Attachments)
{
if (attachment.FileName.EndsWith(".txt"))
{
string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), attachment.FileName);
attachment.SaveAsFile(filePath);
Console.WriteLine("Attachment saved to: " + filePath);
}
}
// 退出邮箱账号
outlookNS.Logoff();
}
}
}
```
在上面的代码中,我们首先使用 `Application` 和 `NameSpace` 类创建了一个 Outlook 应用程序实例,并登录了指定的邮箱账号。然后我们搜索指定主题的邮件,并获取第一封符合条件的邮件。最后,我们遍历邮件附件,如果附件的文件名以 `.txt` 结尾,则将其保存到桌面上。
请注意,为了运行此示例代码,您需要将 Outlook 安装在您的计算机上,并添加对 `Microsoft.Office.Interop.Outlook` 程序集的引用。
阅读全文