Asked by:
C#调用outlook发送周期会议正文乱码

Question
-
收件人正文乱码如下:
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> \;</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;
}帮忙看看是什么原因
- Moved by Yuki SunMicrosoft contingent staff Friday, August 7, 2020 6:51 AM relocate
Wednesday, July 1, 2020 8:40 AM
All replies
-
您好,
欢迎访问Outlook client论坛,这里我们主要讨论关于Outlook客户端的常见问题。
请问您使用Outlook客户端直接发送周期会议是否可以正常发送?
若使用客户端发送周期会议也存在异常,则考虑问题与您的客户端有关,请尝试修复您的Outlook客户端。
若使用客户端发送正常,则考虑问题可能与您的C#代码相关。我尝试对您的问题进行搜索并找到一些可能相关的信息,供您参考:创建模式为每周一次的定期约会。若问题依然存在或者您需要更多C#代码相关的帮助,建议您访问Outlook for developer论坛发帖。
之所以建议您访问Outlook for developer论坛发帖是因为在正确的论坛里将会有我们最了解您所遇到的问题的人员,而经常浏览论坛的其他伙伴也可以就您的问题分享他们的知识和经验或者从您和我们的互动交流中学习。感谢您的理解,希望您的问题能够很快解决。
此致,
敬礼
Jeff Yang
如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.
- Proposed as answer by Jeff Yang7Microsoft contingent staff Saturday, July 4, 2020 6:10 AM
Thursday, July 2, 2020 2:47 AM -
您好,
我正在通过该回复检查上述的信息是否对您有帮助。
如果您那有任何关于的更新,您也可以随时回复我。
此致,
敬礼
Jeff Yang
如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.
Saturday, July 4, 2020 6:10 AM