[转]C#操作Outlook

本文转自:https://blog.csdn.net/yanlovehan/article/details/8500449

//引用Microsoft.Office.Interop.Outlook.dll
using Outlook = Microsoft.Office.Interop.Outlook;
using Microsoft.Office.Interop.Outlook;

//创建Application
Outlook.Application myOutlookApp = new Outlook.Application();
Outlook.NameSpace myNameSpace = myOutlookApp.GetNamespace("MAPI");

//本地邮箱
Outlook.MAPIFolder myFolderInbox = myNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderInbox);//获取收件箱对象,如获取其他箱可在参数中控制
Outlook.MAPIFolder myFolder = myFolderInbox.Folders["xx"];//“xx”为收件箱下的一个文件夹
Outlook.MAPIFolder MyParentFolder = myFolderInbox.Parent as Outlook.MAPIFolder;//获取收件箱上一级的文件夹对象,以次来获取与收件箱同级的文件夹
Outlook.MAPIFolder MyNewFolder = MyParentFolder.Folders["yy"];//“yy”为与收件箱同级的文件夹

//公共邮箱
string publicMailBoxName="[email protected]";
Outlook.Recipient objRecipient = myNameSpace.CreateRecipient(publicMailBoxName);//[email protected]为公共邮箱地址的全名称
Outlook.MAPIFolder myFolderInbox = myNameSpace.GetSharedDefaultFolder(objRecipient, OlDefaultFolders.olFolderInbox);
Outlook.MAPIFolder myFolder = myFolderInbox.Parent as Outlook.MAPIFolder;
Outlook.MAPIFolder myNewFolder = myFolder.Folders["(Z) 処理済"];

//指定发送的邮箱为公共邮箱
string publicMailBoxName = "[email protected]";
mail.SentOnBehalfOfName = publicMailBoxName;

//***筛选***
//根据Subject属性对邮件进行筛选
const string subject = "BIS B2B Document Delivery";
string sFilter = "@SQL=" + "\"" + "urn:schemas:httpmail:subject" + "\"" + " like ‘%" + subject + "%‘";
//根据邮件的收取时间进行筛选
Outlook.Items myMails = myFolderInbox.Items.Restrict(sFilter) as Outlook.Items;
//通配符
通配符
%
包含零个或多个字符的任意字符串。
WHERE title LIKE ‘%computer%‘ 将查找在书名中任意位置包含单词 "computer" 的所有书名。
_(下划线)
任何单个字符。
WHERE au_fname LIKE ‘_ean‘ 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
[ ]
指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。
WHERE au_lname LIKE ‘[C-P]arsen‘ 将查找以 arsen 结尾并且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen 等。在范围搜索中,范围包含的字符可能因排序规则的排序规则而异。
[^]
不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。
WHERE au_lname LIKE ‘de[^l]%‘ 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。

//1.获取邮件对象
//2.根据筛选条件移动邮件
//3.获取附件并将其存到本地磁盘
const string filePath = @"C:\Print Attachment Folder\";
if (MyMails.Count != 0)
{
    do
    {
        Outlook.MailItem myMail = myMails[1] as Outlook.MailItem;
        Outlook.Attachments myAttachments = myMail.Attachments as Outlook.Attachments;
        foreach (Outlook.Attachment myAttachment in myAttachments)
        {
            myAttachment.SaveAsFile(filePath + myAttachment.FileName);
        }
        myMail.Move(MyMoveFolder);
        myMails = MyFolderInbox.Items.Restrict(sfilter) as Outlook.Items;
    }
    while (myMails.Count != 0);
}

//创建新邮件并添加附件发送
Outlook.Application myOutlookApp = new Outlook.Application();
Outlook.MailItem mail = myOutlookApp.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
mail.Attachments.Add(TemplateExcel, Outlook.OlAttachmentType.olEmbeddeditem, 1, System.Type.Missing);
mail.Subject = "QC Check File";
string to = string.Empty; ;
for (int i = 0; i < mails.Count; i++)
{
    to = to + mails[i] + ";";
}
mail.To = to;
mail.Send();
---------------------
作者:刘岩Tony
来源:CSDN
原文:https://blog.csdn.net/yanlovehan/article/details/8500449
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/freeliver54/p/10801552.html

时间: 2024-10-11 01:03:06

[转]C#操作Outlook的相关文章

C#操作Outlook

//引用Microsoft.Office.Interop.Outlook.dll using Outlook = Microsoft.Office.Interop.Outlook; using Microsoft.Office.Interop.Outlook; Outlook.Application myOutlookApp = new Outlook.Application(); Outlook.NameSpace myNameSpace = myOutlookApp.GetNamespace

使用 C# 进行 Outlook 2003 编程

原文:使用 C# 进行 Outlook 2003 编程 摘要: 本文介绍了 Microsoft Outlook 2003 对象模型介,并探讨了如何使用 C# 编程语言生成 Outlook 识别的应用程序和 Outlook 外接程序.(35 页打印页) 注 本文假设您已经熟悉 C# 编程语言和 .NET 平台.Outlook 2003 的开发知识不是必需或期望的. 适用于: Microsoft Visual Studio .NET 2003 Microsoft Visual C# .NET 200

JACob实现java与com组件的相互操作

软件的互操作性是一个我们经常面临的问题,如果 Java 可以自由的调用其他语言和平台的成熟代码,可以充分利用您的 Java 技能,大大提高您的生产力.现有的 Java COM 互操作技术有很多种实现,JACOB 开源项目提供了一个简单方便的通用调用框架,本文就结合一个实例来介绍 JACOB 项目的使用和优点. 我们在实现复杂软件或者进行集成环境的测试时,往往要与各种应用程序打交道.理想情况下,如果能用一种编程语言实现所有功能是很令人憧憬的,但由于遗留代码.语言的能力和厂商的互操作性的策略不同,这

【Life】 今天的思考

今天一个实习生来问我问题,他要用python操作outlook发送邮件,代码是从网上找的. 在其他人的电脑上可以成功运行,但在他的电脑上就失败. 处理过程 (1)我查看了他method里的代码, 发现没有问题,(毕竟是直接抄网上的···而且都在其他人电脑上运行成功了···) (2)我怀疑是outlook的原因,这时另外一个人说他在网上查过了,可能是outlook通讯簿的问题, 于是我删除了通信簿,再次运行代码, 还是失败 (3)事实上当时我都想让他把outlook删除,重新安装了··· 毕竟环境

[Office一般性操作] 关闭Outlook重定向

重定向邮件:当规则自动重定向您收到的邮件时,该规则会原封不动地将该邮件发送到它所指定的帐户.在收件人看来,该邮件看上去好像直接来自原始发件人.没有任何指示该邮件通过您的帐户发送的信息.您收到的邮件的副本将保留在收件箱或邮件最初发送到的文件夹中. 用户可以自行在OWA或outlook中设置重定向规则,但这可能有很多潜在的IT风险. 可以在Exchange管理控制台中组织配置-远程域中选择是否启用自动转发.在Exchange2010中,默认是只能向域内的用户进行邮件重定向,而不能将邮件重定向到外域.

Outlook 2013 在邮件里面点击超链接时弹出“组织策略阻止我们为您完成此操作”

现象描叙: 在Outlook在邮件里面点击超链接时,打不开超链接页面,弹出如下提示: 这个是因为之前安装了其它浏览器(例如,我安装了360的浏览器),并且设置为了默认浏览器,后来卸载了该浏览器,在Office里面打开超链接时,是按照默认浏览器打开的.这个默认浏览器是之前设置的,而删除了360浏览器后,就会报错. 解决办法: 修改注册表: 1:定位到HKEY_CURRENT_USER\Software\Classes\.html.在默认项上点右键,选择修改,将Htmlfile粘贴到输入框. 点击确

python 操作excel格式化及outlook正文,发送邮件

import requests import time import os import arrow import pandas as pd import pandas.io.formats.excel from collections import OrderedDict import yagmail from xlsxwriter.utility import xl_rowcol_to_cell import numpy as np pandas.io.formats.excel.heade

OUTLOOK.EXE错误模块名称: Windows.UI.Xaml.dll

错误应用程序名称: OUTLOOK.EXE,版本: 15.0.4875.1000,时间戳: 0x57fc9641 错误模块名称: Windows.UI.Xaml.dll,版本: 10.0.14393.953,时间戳: 0x58ba5c3d 异常代码: 0xc000027b 错误偏移量: 0x00000000006d611b 错误进程 ID: 0x191c 错误应用程序启动时间: 0x01d2ae038d010d36 错误应用程序路径: C:\Program Files\Microsoft Off

Outlook问题

最近Outlook一直出现问题,由于设置过密码,打开outlook的时候,会有两层需要输入密码的控制,问题:输入第一层密码,outlook就卡死了,很慢很慢很慢,只能强制关闭,再打开就提示以安全模式打开,于是向网上高手求助,发现如下操作可以解决问题: 进入系统里的"服务"工具,"控制面板"--"管理工具"--"服务" 右边栏里找到WINDOWS SERCH,双击,把"启动类型"更改为"禁用&quo