Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ICS文件中为Outlook约会添加HTML_C#_Asp.net_Outlook_Calendar_Icalendar - Fatal编程技术网

C# 在ICS文件中为Outlook约会添加HTML

C# 在ICS文件中为Outlook约会添加HTML,c#,asp.net,outlook,calendar,icalendar,C#,Asp.net,Outlook,Calendar,Icalendar,我正在尝试创建一个日历邀请,并希望在附加的ICS文件中添加HTML内容 以下代码不起作用:- private static byte[] CreateiCal(int current_sequence, string guid, string subject, string location, DateTime startTime, DateTime endTime) { var a = new StringBuilder(); var sb = new StringBu

我正在尝试创建一个日历邀请,并希望在附加的ICS文件中添加HTML内容

以下代码不起作用:-

private static byte[] CreateiCal(int current_sequence, string guid, string subject, string location, DateTime startTime, DateTime endTime)
    {
    var a = new StringBuilder();
    var sb = new StringBuilder();
    a.Append("BEGIN:VCALENDAR\r\f");
    a.Append("VERSION:2.0\r\f");
    a.Append("PRODID:-//ince/events//NONSGML v1.0//EN\r\f");
    a.Append("TZ:+00\r\f");
    a.Append("BEGIN:VEVENT\r\f");
    a.Append(String.Format("SEQUENCE:{0}\r\f", sequence.ToString()));
    a.Append(String.Format("DTSTART:{0}\r\f", GetFormatedDate(startTime)));
    a.Append(String.Format("DTEND:{0}\r\f", GetFormatedDate(endTime)));
    a.Append(String.Format("LOCATION:{0}\r\f", location));
    a.Append(String.Format("UID:{0}\r\f", guid));
    a.Append(String.Format("SUMMARY:{0}\r\f", subject));

    sb.Append("Sample Text1 \n");
    sb.Append("Sample Text2 \n");
    sb.Append(string.Format("Sample Text3 <a href='{0}'>LINK</a> \n", "www.google.com"));
    sb.Append("Sample Text4 \n");

    a.Append(String.Format("DESCRIPTION;X-ALT-DESC;FMTTYPE=text/html:"+sb.ToString() + "\r\f"));

    a.Append((string.Format("ORGANIZER:MAILTO:{0}\r\f", "mailID@corporate.com")));

    a.Append((string.Format("ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=FALSE;X-NUM-GUESTS=0:mailto:{0}\r\f", "mailID2@corporate.com")));


    a.Append(String.Format("X-MICROSOFT-CDO-APPT-SEQUENCE:{0}\r\f", current_sequence.ToString()));

    a.Append("BEGIN:VALARM\r\f");
    a.Append("TRIGGER:-PT15M\r\f");
    a.Append("REPEAT:2\r\f");
    a.Append("DURATION:PT15M\r\f");
    a.Append("ACTION:DISPLAY\r\f");
    a.Append("DESCRIPTION:Reminder\r\f");
    a.Append("END:VALARM\r\f");
    a.Append("END:VEVENT\r\f");
    a.Append("END:VCALENDAR\r\f");
    byte[] b = Encoding.ASCII.GetBytes(a.ToString());
    return b;
}
private static byte[]CreateiCal(int current_sequence,string guid,string subject,string location,DateTime startTime,DateTime endTime)
{
var a=新的StringBuilder();
var sb=新的StringBuilder();
a、 追加(“开始:VCALENDAR\r\f”);
a、 追加(“版本:2.0\r\f”);
a、 追加(“PRODID:-//ince/events//NONSGML v1.0//EN\r\f”);
a、 附加(“TZ:+00\r\f”);
a、 追加(“开始:VEVENT\r\f”);
a、 Append(String.Format(“SEQUENCE:{0}\r\f”,SEQUENCE.ToString());
a、 Append(String.Format(“DTSTART:{0}\r\f”,getFormattedDate(startTime));
a、 Append(String.Format(“DTEND:{0}\r\f”,getFormattedDate(endTime));
a、 追加(String.Format(“位置:{0}\r\f”,位置));
a、 追加(String.Format(“UID:{0}\r\f”,guid));
a、 Append(String.Format(“SUMMARY:{0}\r\f”,subject));
sb.追加(“示例文本1\n”);
sb.追加(“示例文本2\n”);
sb.Append(string.Format(“示例Text3\n”,“www.google.com”);
sb.追加(“示例文本4\n”);
a、 追加(String.Format(“DESCRIPTION;X-ALT-DESC;FMTTYPE=text/html:+sb.ToString()+”\r\f”);
a、 追加((string.Format(“组织者:邮件收件人:{0}\r\f”,”mailID@corporate.com")));
a、 追加((string.Format(“ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=FALSE;X-NUM-GUESTS=0:mailto:{0}\r\f”,”mailID2@corporate.com")));
a、 Append(String.Format(“X-MICROSOFT-CDO-APPT-SEQUENCE:{0}\r\f”,current_SEQUENCE.ToString());
a、 追加(“开始:VALARM\r\f”);
a、 附加(“触发器:-PT15M\r\f”);
a、 追加(“重复:2\r\f”);
a、 追加(“持续时间:PT15M\r\f”);
a、 追加(“操作:显示\r\f”);
a、 追加(“说明:提醒\r\f”);
a、 追加(“结束:VALARM\r\f”);
a、 追加(“结束:VEVENT\r\f”);
a、 追加(“结束:VCALENDAR\r\f”);
byte[]b=Encoding.ASCII.GetBytes(a.ToString());
返回b;
}
任何人都可以分享一些关于如何实现这一点的意见吗


提前谢谢。

我终于解决了这个问题。 请找到以下解决方案:-

private static byte[] CreateiCal(int current_sequence, string guid, string subject, string location, DateTime startTime, DateTime endTime)
{

            var a = new StringBuilder();
            int sequence = current_sequence + 1;

            a.Append("BEGIN:VCALENDAR\r\f");
            a.Append("VERSION:2.0\r\f");
            a.Append("PRODID:-//ince/events//NONSGML v1.0//EN\r\f");

            a.Append("TZ:+00\r\f");
            a.Append("BEGIN:VEVENT\r\f");
            a.Append(String.Format("SEQUENCE:{0}\r\f", sequence.ToString()));
            a.Append(String.Format("DTSTART:{0}\r\f", GetFormatedDate(startTime)));
            a.Append(String.Format("DTEND:{0}\r\f", GetFormatedDate(endTime)));
            a.Append(String.Format("LOCATION:{0}\r\f", location));
            a.Append(String.Format("UID:{0}\r\f", guid));

            a.Append(String.Format("SUMMARY:{0}\r\f", subject));

            string desc = File.ReadAllText("Sample.html", Encoding.GetEncoding("iso-8859-1")); // iso-8859-1 : HTML contains French characters

            a.Append("X-ALT-DESC;FMTTYPE=text/html:" + desc + "\r\f");

            a.Append(String.Format("DESCRIPTION:{0}\r\f", desc));


            a.Append(String.Format("X-MICROSOFT-CDO-APPT-SEQUENCE:{0}\r\f", current_sequence.ToString()));

            a.Append("BEGIN:VALARM\r\f");
            a.Append("TRIGGER:-PT15M\r\f");
            a.Append("REPEAT:2\r\f");
            a.Append("DURATION:PT15M\r\f");
            a.Append("ACTION:DISPLAY\r\f");
            a.Append("DESCRIPTION:Reminder\r\f");

            a.Append("END:VALARM\r\f");
            a.Append("END:VEVENT\r\f");


            a.Append("END:VCALENDAR\r\f");

            byte[] b = Encoding.UTF8.GetBytes(a.ToString());

            return b;
}
注意:-在保存到“Sample.HTML”文件之前,我必须缩小HTML

希望它能帮助别人