当前位置 > 首页 > Asp.net

通过SmtpClient发送Exchange会议邮件

2009-7-10 17:11:00来源:Asp.net

看到C#中调用Outlook API 发起会议 ,这个完全可以用SMTP方式实现的,下面我的项目中使用的代码:

对于.NET而言,从2.0开始,发邮件已经是一件非常容易的事了。而且新增了一个AlternateView使用 AlternateView 类可以指定一个电子邮件的不同格式副本。例如,如果您发送 HTML 格式的邮件,您可能希望同时提供邮件的纯文本格式,以防一些收件人使用的电子邮件阅读程序无法显示HTML 内容。

通过使用AlternateView我们就可以实现Exchange 会议邮件的发送。核心代码如下:

         

           MailMessage msg = new MailMessage();   

            // Set up the different mime types contained in the message   

            System.Net.Mime.ContentType textType = new System.Net.Mime.ContentType("text/plain");   

            System.Net.Mime.ContentType HTMLType = new System.Net.Mime.ContentType("text/html");   

            System.Net.Mime.ContentType calendarType = new System.Net.Mime.ContentType("text/calendar");   

           

            // Add parameters to the calendar header   

            calendarType.Parameters.Add("method", "REQUEST");   

            calendarType.Parameters.Add("name", "meeting.ics");   

           

            // Create message body parts   

            // create the Body in text format   

           

            string bodyText = "Type:Single Meeting"r"nOrganizer: {0}"r"nStart Time:{1}"r"nEnd Time:{2}"r"nTime Zone:{3}"r"nLocation: {4}"r"n"r"n*~*~*~*~*~*~*~*~*~*"r"n"r"n{5}";   

            bodyText = string.Format(bodyText, organizerName, start.ToLongDateString() + " " + start.ToLongTimeString(), end.ToLongDateString() + " " + end.ToLongTimeString(), System.TimeZone.CurrentTimeZone.StandardName, location, summary);   

            AlternateView textView = AlternateView.CreateAlternateViewFromString(bodyText, textType);   

            msg.AlternateViews.Add(textView);   

           

            //create the Body in HTML format   

            string bodyHTML = "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 3.2//EN"">"r"n<HTML>"r"n<HEAD>"r"n<META HTTP-EQUIV=""Content-Type"" CONTENT=""text/html; charset=utf-8"">"r"n<META NAME=""Generator"" C