当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 如何在 C# 中发起会议之类的特殊邮件

ASP.NET
asp.net css注释的影响
ASP.NET与数据库相关技巧
关于HtmlForm控件
三色交替的下拉列表框
精通ASP.NET中弹出窗口技术
ASP.NET Forums与现有系统整合方案示例
ASP.NET操作IIS中的虚拟目录
DataGrid与SQL Server 2000数据绑定
如何让Web应用程序在Client端实现导出报表功能
如何保证web app中的Send Email线程稳定性
关于用ASP.Net识别远程主机服务器种类
ASP.NET中上传下载文件
提高ASP.NET性能的方法
asp.net StreamReader 创建文件
asp.net如何生成图片验证码(简单)
一个.net 压缩位图至JPEG的代码
简单的SQL Server数据库数据读取与数据操作
获取网站的RSS聚合到自己的网页
.Net程序中整站通用的防SQL注入函数
asp.net生成缩略图及给原始图加水印的函数

ASP.NET 中的 如何在 C# 中发起会议之类的特殊邮件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 115 ::
收藏到网摘: n/a

从C#中调用Outlook中的API,可以发起会议之类的特殊邮件。方法如下:

创建项目后,为它添加.NET引用:“Microsoft.Office.Interop.Outlook“的引用,即可调用,需要注意的是,在添加的时候,注意一下Office版本号。

在调用其API发起会议的过程中,遇到了一个问题:

创建完一个约会条目后,找了很久没找到如何为这一约会指定“发件人”,后来一想,Window CF 中,查找人员信息有个OutlookSession的东东,

那这Outlook会不会有同样的方式呢,经过测试,还真的找到方法,原来,它的API指定的发件人是和你机上运行的Outlook的帐户设置直接相关的。

通过 ApplicationClass.Session.Accounts即可找到您设置的帐户集合,需要特别特别注意的是,在这里,取某个人员时,集合的索引是从1开始,而不是

从0开始。 找到相关的帐户后,可以通过 AppointmentItem.SendUsingAccount 属性来指定约会的发件人。

下面是测试的代码,在WIN2003+OFFICE12下运行通过,成功创建会议:

以下为引用的内容:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Outlook;
/**/////////////////////
/**//* 调用Outlook api 发起会议
/* [email protected]
////////////////////
namespace OutlookAPI
{
   class Program
    {
       static void Main(string[] args)
       {
            try
            {
                ApplicationClass oApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
                //会议是约会的一种
                AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(OlItemType.olAppointmentItem);
                oItem.MeetingStatus = OlMeetingStatus.olMeeting;
                oItem.Subject = "主题";
                oItem.Body = "内容";
                oItem.Location = "地点";
                //开始时间 
                oItem.Start = DateTime.Now.AddDays(1);
                //结束时间
                oItem.End = DateTime.Now.AddDays(2);
                //提醒设置
                oItem.ReminderSet = true;
                oItem.ReminderMinutesBeforeStart = 5;
                //是否全天事件
                oItem.AllDayEvent = false;
                oItem.BusyStatus = OlBusyStatus.olBusy;               
                //索引从1开始,而不是从0
                //发件人的帐号信息
                oItem.SendUsingAccount = oApp.Session.Accounts[2];              
                //添加必选人
                Recipient force = oItem.Recipients.Add("[email protected]");
                force.Type = (int)OlMeetingRecipientType.olRequired;
                //添加可选人
                Recipient opt = oItem.Recipients.Add("[email protected]");
                opt.Type = (int)OlMeetingRecipientType.olOptional;
                //添加会议发起者
                Recipient sender = oItem.Recipients.Add("[email protected]");
                sender.Type = (int)OlMeetingRecipientType.olOrganizer;                
                oItem.Recipients.ResolveAll();
                //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);
                oItem.Send();
                //MailItem mItem = (MailItem)oApp.CreateItem(OlItemType.olMailItem);
                //Recipient rTo = mItem.Recipients.Add("****");
                //rTo.Type = (int)OlMailRecipientType.olTo;
                //Recipient rCC=mItem.Recipients.Add("****");
                //rCC.Type = (int)OlMailRecipientType.olCC;
                //Recipient rBC = mItem.Recipients.Add("****");
                //rBC.Type = (int)OlMailRecipientType.olBCC;

               Console.WriteLine("OK");
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadLine();
        }
    }
}