Outlook对象模型中提供的对象是我们编写外接程序与Outlook应用交互的桥梁。Outlook 对象模型提供表示用户界面中各项的类和接口。例如,Application对象表示整个应用程序,MAPIFolder对象表示包含电子邮件或其他项的文件夹,MailItem对象表示电子邮件。OutLook模型中提供的对象有哪些?一品威客小编为您道来。
Application对象
表示Outlook 应用程序,它是 Outlook 对象模型中最高级的对象。此对象包含很多重要的属性和方法,比如,创建一个邮件对象以便发送,CreateItem方法可以办到。
MAPIFolder对象
表示包含电子邮件、联系人、任务及其他项的文件夹。 Outlook 提供 16 个默认MAPIFolder对象。默认MAPIFolder对象由OlDefaultFolders枚举值定义。
例如,Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox与 Outlook 中的“收件箱”文件夹相对应。
MailItem对象
表示电子邮件。MailItem对象通常在“收件箱”、“已发送邮件”和“发件箱”等文件夹中。MailItem公开可用于创建和发送电子邮件的属性和方法。
l 可能会遇到的典型问题
如何发送一封简单邮件?
// 创建Outlook App
ApplicationClass outlookApp = newMicrosoft.Office.Interop.Outlook.ApplicationClass();
// 创建邮件对象
MailItemmail = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
// 设置权限:不可转发
mail.Permission = OlPermission.olDoNotForward;
// 是否要求送达回执
mail.OriginatorDeliveryReportRequested = true;
// 设置邮件过期时间
mail.ExpiryTime = DateTime.Now.AddMinutes(ConfigParameterManager.ExpiryDay);
// 设置邮件接收方
mail.To = record.ToAccount;
// 设置邮件主题
mail.Subject = record.Subject;
// 设置邮件内容格式,html、文本
mail.BodyFormat = OlBodyFormat.olFormatHTML;
// 设置邮件文本内容,html格式应该给HTMLBody属性赋值
mail.HTMLBody = record.Content;
// 发送邮件
Microsoft.Office.Interop.Outlook._MailItem mailItem = (Microsoft.Office.Interop.Outlook._MailItem)mail;
mailItem.Send();
如何发送一封带图片的邮件
// 创建邮件对象
MailItemmail= (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
// 获取图片附件,并添加到邮件对象
string headImage = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "Image/head.png";
mail.Attachments.Add(headImage, OlAttachmentType.olOLE, 1, "");
如何根据指定邮件地址获取Outlook账户对象,并用该账户发送邮件
///
///根据邮件地址获取Outlook账户对象
///
///邮件地址
///返回Outlook账户
publicstatic Microsoft.Office.Interop.Outlook.Account GetAccountForEmailAddress(string smtpAddress)
{
ApplicationClass application = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.Accounts accounts = application.Session.Accounts;
foreach (Microsoft.Office.Interop.Outlook.Account account in accounts)
{
if (account.SmtpAddress == smtpAddress)
{
return account;
}
}
returnnull;
}
// 获取指定Outlook账户
Microsoft.Office.Interop.Outlook.Account account = GetAccountForEmailAddress("denghejun@517na.com");
// 创建邮件对象
MailItem mail = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
if (account != null)
{
// 邮件发送账户
mail.SendUsingAccount = account;
}
如何获取指定账户的收/发件箱等
// 获取指定Outlook账户
Microsoft.Office.Interop.Outlook.Account account = GetAccountForEmailAddress("denghejun@517na.com");
// 收件箱文件夹
MAPIFolder inbox = null;
if (account != null)
{
// 指定账户的收件箱文件夹
inbox = account.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
}
// 甚至你可以按文件夹名称直接查询到Outlook对应的Folder对象
Folder targetFolder = account.Session.Folders.Cast().ToList().Find(p => p.Name.Equals("Myself Box"));
if (targetFolder != null)
{
// 取到该文件对象下边的收件箱,或子文件夹
inBox = targetFolder.Store.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
}
注:DeliveryStore在Microsoft.Office.Interop.Outlook14.0.0.0版本中新增,标示指定账户的默认存储区。
如何获取到邮件的回执
// 获取指定Outlook账户
Microsoft.Office.Interop.Outlook.Account account = GetAccountForEmailAddress("denghejun@517na.com");
// 收件箱文件夹
MAPIFolder inbox = null;
if (account != null)
{
// 指定账户的收件箱文件夹
inbox = account.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
}
if (inbox != null)
{
// 遍历收件箱
foreach (var item in inbox.Items)
{
if ((item asMailItem) != null)
{
// 处理普通邮件
}
if ((item asReportItem) != null)
{
// 处理回执邮件
}
// ... ...
}
}
以上就是关于OutLook模型对象的介绍,如果您对OutLook模型对象还有其他的疑问或者需求,欢迎前往一品商城,一品商城汇聚应用软件开发人才,拥有丰富的应用软件开发经验,为您服务。
交易额: 110.67万元
无 |浙江省 |温州市 |瓯海区
交易额: 101.38万元
无 |广东省 |东莞市 |东莞市
交易额: 62.23万元
工作室 |广东省 |佛山市 |禅城区
交易额: 47.41万元
公司 |广东省 |深圳市 |福田区
成为一品威客服务商,百万订单等您来有奖注册中
价格是多少?怎样找到合适的人才?
¥28000 已有1人投标
¥350 已有1人投标
¥29000 已有1人投标
¥29000 已有1人投标
¥100 已有5人投标
¥25000 已有1人投标
¥300 已有8人投标
¥7580 已有1人投标