none
C#调用outlook发送周期会议正文乱码 RRS feed

  • Soru

  • 收件人正文乱码如下:

    X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R781e2;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e02c03302;MF=west183@sina.com;NM=1;PH=DM;RN=1;RT=1;SC=80;SR=1;TI=MTA_---.Hvh89Yq_1593591743;

    Received: from mail3-166.sinamail.sina.com.cn(mailfrom:west183@sina.com ip:202.108.3.166)

              by mx1.aliyun-inc.com(10.147.2.232);

              Wed, 01 Jul 2020 16:22:24 +0800

    Received: from unknown (HELO zhangweiwei)([221.131.113.238])

             by sina.com with ESMTP

             id 5EFC47BB00012FF7; Wed, 1 Jul 2020 16:22:23 +0800 (CST)

    X-Sender: 

    X-Auth-ID: 

    X-SMAIL-MID: 62819254920811

    From: "zhangweiwei" <>

    To: <>

    Subject: =?utf-8?B?5p2O5aic6YKA6K+35oKo5YmN5b6AMTEyM+WPguWKoFvmtYvor5UwMDBdIA==?=

             =?utf-8?B?77yM5ZGo5pyf5Li6MjAyMC0wOC0wMSDoh7MgMjAyMC0xMC0wMe+8jA==?=

             =?utf-8?B?5byA5aeL5pe26Ze05Li6MTM6MDA=?=

    Date: Wed, 1 Jul 2020 16:22:19 +0800

    Message-ID: 

    MIME-Version: 1.0

    Content-Type: text/calendar; method=REQUEST;

             charset="utf-8"

    Content-Transfer-Encoding: 8bit

    X-Mailer: Microsoft Outlook 16.0

    Thread-Index: AdZPgLXIGVxfsEeCSOGDRaihWG1pFwAAAb0A

    Content-Language: zh-cn

    BEGIN:VCALENDAR

    PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN

    VERSION:2.0

    METHOD:REQUEST

    X-MS-OLK-FORCEINSPECTOROPEN:TRUE

    BEGIN:VTIMEZONE

    TZID:China Standard Time

    BEGIN:STANDARD

    DTSTART:16010101T000000

    TZOFFSETFROM:+0800

    TZOFFSETTO:+0800

    END:STANDARD

    END:VTIMEZONE

    BEGIN:VEVENT

    ATTENDEE;CN=ww.zhang@xiaofeng.cn;RSVP=TRUE:mailto:ww.zhang@xiaofeng.cn

    CLASS:PUBLIC

    CREATED:20200701T082219Z

    DESCRIPTION: \n\n

    DTEND;TZID="China Standard Time":20200801T132000 DTSTAMP:20200701T082219Z DTSTART;TZID="China Standard Time":20200801T130000 LAST-MODIFIED:20200701T082219Z

    LOCATION:1123

    ORGANIZER;CN=n.li@xiaofeng.cn:mailto:n.li@xiaofeng.cn

    PRIORITY:5

    RRULE:FREQ=MONTHLY;COUNT=3;BYMONTHDAY=3

    SEQUENCE:0

    SUMMARY;LANGUAGE=zh-cn:鏉庡璇锋偍鍓嶅線1123鍙傚姞[娴嬭瘯000] 锛屽懆鏈?

             ?020-08-01 ?2020-10-01锛屽紑濮嬫椂闂翠负13:00

    TRANSP:OPAQUE

    UID:040000008200E00074C5B7101A82E0080000000050DAE2CAC34FD601000000000000000

             0100000003295D36A9A17104C9796BA4A859A2000

    X-ALT-DESC;FMTTYPE=text/html:<html xmlns:o="urn:schemas-microsoft-com:offic

             e:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://

             schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC

             -html40"><head><meta http-equiv=Content-Type content="text/html\; charset=

             gb2312"><meta name=Generator content="Microsoft Word 15 (filtered medium)"

             ><style><!--\n/* Font Definitions */\n@font-face\n     {font-family:瀹嬩綋\;\n

                      panose-1:2 1 6 0 3 1 1 1 1 1\;}\n@font-face\n       {font-family:瀹嬩綋\;\n pan

             ose-1:2 1 6 0 3 1 1 1 1 1\;}\n@font-face\n     {font-family:"\;\n        pa

             nose-1:2 1 6 0 3 1 1 1 1 1\;}\n/* Style Definitions */\np.MsoNormal\, li.M

             soNormal\, div.MsoNormal\n {margin:0cm\;\n     margin-bottom:.0001pt\;\n   font-

             size:12.0pt\;\n font-family:瀹嬩綋\;}\na:link\, span.MsoHyperlink\n  {"MsoPlainText">         tyle-priority:99\;\n color:#0563C1\;\n  text-decoration:underline\;}\na:vis

             ited\, span.MsoHyperlinkFollowed\n     {\n       color:#954F7

             2\;\n        text-decoration:underline\;}\np.msonormal0\, li.msonormal0\, div.mso

             normal0\n       {\n   \n margin

             -right:0cm\;\n \n   margin-\n        font-siz

             e:12.0pt\;\n    font-family:瀹嬩綋\;}\nspan.EmailStyle18\n {"MsoPlainText">         rsonal-compose\;}\n.MsoChpDefault\n {\n     font-s

             ize:10.0pt\;}\n@page WordSection1\n {size:612.0pt 792.0pt\;\n        margin:72.0p

             t 90.0pt 72.0pt 90.0pt\;}\ndiv.WordSection1\n     {page:WordSection1\;}\n--></

             style></head><body lang=ZH-CN link="#0563C1" vlink="#954F72"><div>

             rdSection1><p lang=EN-US><o:p>&nbsp\;</o:p></span></

             p></div></body></html>

    X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE

    X-MICROSOFT-CDO-IMPORTANCE:1

    X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY

    X-MICROSOFT-DISALLOW-COUNTER:FALSE

    X-MS-OLK-AUTOSTARTCHECK:FALSE

    X-MS-OLK-CONFTYPE:0

    BEGIN:VALARM

    TRIGGER:-PT10M

    ACTION:DISPLAY

    DESCRIPTION:Reminder

    END:VALARM

    END:VEVENT

    END:VCALENDAR

    代码为:

    private static bool SendRecurringMail(CalendarModel calendarModel)
            {
                bool isSend = false;
                try
                {
                    ApplicationClass oApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
                    AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(OlItemType.olAppointmentItem);
                    oItem.MeetingStatus = OlMeetingStatus.olMeeting;
                    oItem.Subject = calendarModel.caller + "邀请您前往" + calendarModel.address + "参加" + "[" + calendarModel.meetingName + "]" + " ,周期为" + DateTime.Parse(calendarModel.repeatbegindate.ToString()).ToString("yyyy-MM-dd") + " 至 " + DateTime.Parse(calendarModel.repeatenddate.ToString()).ToString("yyyy-MM-dd") + ",开始时间为" + DateTime.Parse(calendarModel.beginTime.ToString()).ToString("HH:mm");
                    oItem.Body = Util.ReplaceHtmlTag(calendarModel.meetingContent);//内容
                    oItem.Location = calendarModel.address;//地址
                    oItem.ReminderSet = true;//提醒设置
                    AppSettingsReader appReader = new AppSettingsReader();
                    oItem.ReminderMinutesBeforeStart = int.Parse(appReader.GetValue("remind", typeof(string)).ToString());
                    oItem.AllDayEvent = false;//是否全天事件
                    oItem.BusyStatus = OlBusyStatus.olBusy; //显示为忙 
                    oItem.SendUsingAccount = oApp.Session.Accounts[1];//发件人的帐号信息,索引从1开始
                    // 添加必选人 
                    foreach (string recipient in calendarModel.rlist)
                    {
                        if (!string.IsNullOrEmpty(recipient))
                        {
                            Recipient force = oItem.Recipients.Add(recipient);
                            force.Type = (int)OlMeetingRecipientType.olRequired;
                            //force.Type = 1;
                        }
                    }
                    //添加可选人
                    //Recipient opt = oItem.Recipients.Add("");
                    //opt.Type = (int)OlMeetingRecipientType.olOptional;
                    //opt.Type = 2;

                    // 添加会议发起者
                    if (!string.IsNullOrEmpty(calendarModel.callerEmail))
                    {
                        Recipient sender = oItem.Recipients.Add(calendarModel.callerEmail);
                        sender.Type = (int)OlMeetingRecipientType.olOrganizer;
                        //sender.Type = 0;
                    }
                    RecurrencePattern pattern = oItem.GetRecurrencePattern();
                    switch (calendarModel.repeattype)
                    {
                        case 1://按天重复
                            pattern.RecurrenceType = OlRecurrenceType.olRecursDaily;
                            pattern.Interval = calendarModel.repeatdays;//间隔几天
                            break;
                        case 2: //按周
                            pattern.RecurrenceType = OlRecurrenceType.olRecursWeekly;
                            pattern.Interval = calendarModel.repeatweeks;//间隔几周
                            int[] weekDays = Array.ConvertAll<string, int>(calendarModel.rptWeekDays.Split(','), delegate(string s)
                            {
                                return int.Parse(s);
                            });
                            for (int i = 0; i < weekDays.Count(); i++)
                            {
                                if (i == 0)
                                {
                                    switch (weekDays[0])
                                    {
                                        case 1:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olMonday;
                                            break;
                                        case 2:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olTuesday;
                                            break;
                                        case 3:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olWednesday;
                                            break;
                                        case 4:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olThursday;
                                            break;
                                        case 5:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olFriday;
                                            break;
                                        case 6:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olSaturday;
                                            break;
                                        case 7:
                                            pattern.DayOfWeekMask = OlDaysOfWeek.olSunday;
                                            break;
                                    }
                                }
                                else
                                {
                                    switch (weekDays[i])
                                    {
                                        case 1:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olMonday;
                                            break;
                                        case 2:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olTuesday;
                                            break;
                                        case 3:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olWednesday;
                                            break;
                                        case 4:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olThursday;
                                            break;
                                        case 5:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olFriday;
                                            break;
                                        case 6:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olSaturday;
                                            break;
                                        case 7:
                                            pattern.DayOfWeekMask |= OlDaysOfWeek.olSunday;
                                            break;
                                    }
                                }
                            }
                            break;
                        case 3: //按月
                            pattern.RecurrenceType = OlRecurrenceType.olRecursMonthly;
                            pattern.Interval = calendarModel.repeatmonths;//间隔几月
                            pattern.DayOfMonth = calendarModel.repeatmonthdays; //每月第几天
                            break;
                    }
                    pattern.PatternStartDate = calendarModel.repeatbegindate;//重复开始日期
                    pattern.PatternEndDate = calendarModel.repeatenddate;//重复结束日期
                    pattern.StartTime = calendarModel.beginTime;//开始时间
                    pattern.EndTime = calendarModel.endTime;//结束时间
                    TimeSpan ts = calendarModel.endTime - calendarModel.beginTime;
                    pattern.Duration = (int)ts.TotalMinutes;//持续时间(单位分钟)
                    oItem.Recipients.ResolveAll();
                    oItem.Send();
                    isSend = true;
                }
                catch (System.Exception ex)
                {
                    LogHelper.WriteLog(typeof(SendMail), DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":发送周期会议邮件失败!" + ex.ToString());
                }
                return isSend;
            }

    帮忙看看是什么原因

    1 Temmuz 2020 Çarşamba 08:40

Tüm Yanıtlar

  • 您好,

    欢迎访问Outlook client论坛,这里我们主要讨论关于Outlook客户端的常见问题。

    请问您使用Outlook客户端直接发送周期会议是否可以正常发送?

    若使用客户端发送周期会议也存在异常,则考虑问题与您的客户端有关,请尝试修复您的Outlook客户端

    若使用客户端发送正常,则考虑问题可能与您的C#代码相关。我尝试对您的问题进行搜索并找到一些可能相关的信息,供您参考:创建模式为每周一次的定期约会。若问题依然存在或者您需要更多C#代码相关的帮助,建议您访问Outlook for developer论坛发帖。

    之所以建议您访问Outlook for developer论坛发帖是因为在正确的论坛里将会有我们最了解您所遇到的问题的人员,而经常浏览论坛的其他伙伴也可以就您的问题分享他们的知识和经验或者从您和我们的互动交流中学习。感谢您的理解,希望您的问题能够很快解决。

    此致,

    敬礼

    Jeff Yang


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2 Temmuz 2020 Perşembe 02:47
  • 您好,

    我正在通过该回复检查上述的信息是否对您有帮助。

    如果您那有任何关于的更新,您也可以随时回复我。


    此致,

    敬礼

    Jeff Yang


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    4 Temmuz 2020 Cumartesi 06:10