zoukankan      html  css  js  c++  java
  • C#中调用Outlook API 发起会议

      在我上一篇博文中曾提到了 SharePoint 中调用传出电子邮件中的邮件服务器及地址发送邮件

      但是,里面的方法只能用于发送普通电子邮件。如果要发起会议之类的特殊邮件的话,可以使用Outlook 自身的API。

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

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

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

      那这Outlook会不会有同样的方式呢,经过测试,还真的找到方法,原来,它的API指定的发件人是和你机上运行的Outlook的帐户设置直接相关的。
      通过 ApplicationClass.Session.Accounts即可找到您设置的帐户集合,需要特别特别注意的是,在这里,取某个人员时,集合的索引是从1开始,而不是
      从0开始。 找到相关的帐户后,可以通过 AppointmentItem.SendUsingAccount 属性来指定约会的发件人。
     ---但是,如果我不使用Outlook里帐户设置的帐户集合,而要指定其它的邮件帐户来发送邮件时该怎么弄?到现在也没有找到或发现办法,希望知道的达人们能
      指点一下门路,拜谢先~~~~

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

      

     1using System;
     2using System.Collections.Generic;
     3using System.Text;
     4using Microsoft.Office.Interop.Outlook;
     5////////////////////
     6/* 调用Outlook api 发起会议
     7/* mcjeremy@cnblogs.com
     8////////////////////
     9namespace OutlookAPI
    10{
    11    class Program
    12    {
    13        static void Main(string[] args)
    14        {
    15            try
    16            {
    17                ApplicationClass oApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
    18
    19                //会议是约会的一种
    20                AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(OlItemType.olAppointmentItem);
    21                oItem.MeetingStatus = OlMeetingStatus.olMeeting;
    22
    23                oItem.Subject = "主题";
    24
    25                oItem.Body = "内容";
    26
    27                oItem.Location = "地点";
    28
    29                //开始时间 
    30                oItem.Start = DateTime.Now.AddDays(1);
    31
    32                //结束时间
    33                oItem.End = DateTime.Now.AddDays(2);
    34
    35                //提醒设置
    36                oItem.ReminderSet = true;
    37                oItem.ReminderMinutesBeforeStart = 5;
    38
    39                //是否全天事件
    40                oItem.AllDayEvent = false;
    41
    42                oItem.BusyStatus = OlBusyStatus.olBusy;                
    43
    44                //索引从1开始,而不是从0
    45                //发件人的帐号信息
    46                oItem.SendUsingAccount = oApp.Session.Accounts[2];               
    47
    48                //添加必选人
    49                Recipient force = oItem.Recipients.Add("mailuser2@mailserver.com");
    50                force.Type = (int)OlMeetingRecipientType.olRequired;
    51                //添加可选人
    52                Recipient opt = oItem.Recipients.Add("mailuser3@p.mailserver.com");
    53                opt.Type = (int)OlMeetingRecipientType.olOptional;
    54                //添加会议发起者
    55                Recipient sender = oItem.Recipients.Add("mailuser1@mailserver.com");
    56                sender.Type = (int)OlMeetingRecipientType.olOrganizer;                    
    57               
    58                oItem.Recipients.ResolveAll();
    59
    60                //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);
    61
    62                oItem.Send();
    63
    64                //MailItem mItem = (MailItem)oApp.CreateItem(OlItemType.olMailItem);
    65                //Recipient rTo = mItem.Recipients.Add("****");
    66                //rTo.Type = (int)OlMailRecipientType.olTo;
    67                //Recipient rCC=mItem.Recipients.Add("****");
    68                //rCC.Type = (int)OlMailRecipientType.olCC;
    69                //Recipient rBC = mItem.Recipients.Add("****");
    70                //rBC.Type = (int)OlMailRecipientType.olBCC;
    71
    72                Console.WriteLine("OK");
    73            }
    74            catch (System.Exception ex)
    75            {
    76                Console.WriteLine(ex.Message);
    77            }
    78
    79            Console.ReadLine();
    80        }
    81    }
    82}

    83
    <h3>
       心静似高山流水不动,心清若巫峰雾气不沾。
    </h3>
  • 相关阅读:
    【leetcode】1365. How Many Numbers Are Smaller Than the Current Number
    【leetcode】1363. Largest Multiple of Three
    【leetcode】1362. Closest Divisors
    【leetcode】1361. Validate Binary Tree Nodes
    【leetcode】1360. Number of Days Between Two Dates
    【leetcode】1359. Count All Valid Pickup and Delivery Options
    【leetcode】1357. Apply Discount Every n Orders
    【leetcode】1356. Sort Integers by The Number of 1 Bits
    ISE应用入门的一些问题
    DDR的型号问题
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1520079.html
Copyright © 2011-2022 走看看