Skip to main content
 首页 » 编程设计

c#之遍历具有特定主题的 Outlook 电子邮件

2024年04月30日38softidea

我目前正在研究下面的方法,它遍历我的收件箱中的电子邮件,但想知道如何过滤它们以专注于带有static subject 的,例如:nice weather。在搜索之后,我认为 folders.Items.Restrict() 可以提供帮助,但是我在 var fi = folder.Items 上得到了 condition is not valid。限制(“天气”)。我也试过 var fi = folder.Items.Find("[Subject] = weather"),以确保条件有效,...但最终没有任何改进。

提前致谢

static void IterateMessages(Outlook.Folder folder) 
    { 
        string[] extensionsArray = {".csv"}; 
        //var fi = folder.Items; 
        var fi = folder.Items.Restrict("weather"); 
 
        if (fi != null) 
        { 
            foreach (Object item in fi) 
            { 
                Outlook.MailItem mi = (Outlook.MailItem)item; 
                var attachments = mi.Attachments; 
                if (attachments.Count != 0) 
                { 
                    if (!Directory.Exists(basePath) 
                    { 
                        Directory.CreateDirectory(basePath); 
                    } 
 
                    // Loop through each attachment 
                    for (int i = 1; i <= mi.Attachments.Count; i++) 
                    { 
                        Console.WriteLine("Processing: {0}", mi.Attachments[i].FileName); 
                        mi.Attachments[i].SaveAsFile(basePath); 
                        Console.WriteLine("Attachment: {0}" + " Saved to Path", mi.Attachments[i].FileName); 
                    } 
                } 
            } 
        } 
    } 

请您参考如下方法:

您的Restrict 参数格式似乎有误。试试这个:

var fi = folder.Items.Restrict("@SQL=\"urn:schemas:httpmail:subject\" like '%weather%'"; 

More information