[转]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="jpn_eco_ci04@hp.com";
Outlook.Recipient objRecipient = myNameSpace.CreateRecipient(publicMailBoxName);//jpn_eco_ci04@hp.com为公共邮箱地址的全名称
Outlook.MAPIFolder myFolderInbox = myNameSpace.GetSharedDefaultFolder(objRecipient, OlDefaultFolders.olFolderInbox);
Outlook.MAPIFolder myFolder = myFolderInbox.Parent as Outlook.MAPIFolder;
Outlook.MAPIFolder myNewFolder = myFolder.Folders["(Z) 処理済"];
//指定发送的邮箱为公共邮箱
string publicMailBoxName = "vpchi.dlbc@hp.com";
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
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- 新项目的CQRS设计
- Windows phone重写返回键
- SQL 的坑1 除法“”不可用“”
- yii2.0根据query查看sql语句
- Python3 内建模块 hashlib、itertools、HTMLParser、urllib
- linux可执行文件目录的区别
- hdu_5783_Divide the Sequence(贪心)
- DataGridView如何实现列标头带数据筛选功能,就象Excel高级筛选功能一样
- iOS开发——获取本设备IP
- ArrayList 和 LinkedList的执行效率比较
- maven导入外部jar包的方法
- (light oj 1024) Eid (最小公倍数)
- vue深度监控数据改变,缓存数据到本地
- Always an Integer 数论和字符串处理
- AI产品经理成长路
- c# 日期函数DateTime.ToString()日期的各种格式 (本人亲测)
- 新增async
- jmeter—JDBC request动态参数设置
- 定义function的层级
- centos安装telnet
热门文章
- 架构视角 - DDD、TDD、MDD领域驱动、测试驱动还是模型驱动?
- js随机生成ID
- js 报错 Uncaught TypeError: Cannot read property &#39;trim&#39; of undefined
- Java实现命令行中的进度条功能
- Saltstack_使用指南17_salt-ssh
- 高通lk屏幕向kernel传参
- Educational Codeforces Round 74 (Rated for Div. 2)
- AtCoder Regular Contest 103
- LeetCode 5127. 删除被覆盖区间 Remove Covered Intervals
- 模块基础实战之ATM和购物车系统分文件处理