私はこの時点でこの問題に何時間も立ち往生していて、問題を理解することができません。
iCalファイルを介して招待状をメール(Gmail)で送信したいのですが、
1つのイベントを送信すると、機能します(受信者は招待状を取得でき、[はい]をクリックしてこの招待状を受信者のカレンダーに追加できます)。
しかし、2つのイベントを送信すると、失敗しました(Gmailには招待状のみが表示されます。カレンダーに追加する場合は[はい]をクリックすると、カレンダーに招待状が1つだけ追加されます)。
コードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
MailMessage msg = new MailMessage("testxxx@gmail.com", "testxxx@gmail.com", "test", "test");
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Credentials = new NetworkCredential("test", "test");
msg = GetCalanderInviteMsg3(msg);
smtp.EnableSsl = true;
smtp.Send(msg);
}
public static MailMessage GetCalanderInviteMsg3(MailMessage msg)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("BEGIN:VCALENDAR");
sb.AppendLine("PRODID:-//Google Inc//Google Calendar 70.9054//EN");
sb.AppendLine("VERSION:2.0");
sb.AppendLine("CALSCALE:GREGORIAN");
sb.AppendLine("METHOD:PUBLISH");
sb.AppendLine("X-WR-CALNAME:test");
sb.AppendLine("X-WR-TIMEZONE:Asia/Taipei");
sb.AppendLine("X-WR-CALDESC:");
sb.AppendLine("BEGIN:VEVENT");
sb.AppendLine("DTSTART;VALUE=DATE:20130705")`
sb.AppendLine("DTEND;VALUE=DATE:20130706");
sb.AppendLine("DTSTAMP:20130127T040705Z");
sb.AppendLine("UID:" + "c643b569-9ba8-45c1-9264-8f160411872a");
sb.AppendLine("CREATED:20130624T082605Z");
sb.AppendLine("DESCRIPTION:");
sb.AppendLine("LAST-MODIFIED:" + "2013127T054310Z");
sb.AppendLine("LOCATION:");
sb.AppendLine("SEQUENCE:0");
sb.AppendLine("STATUS:CONFIRMED");
sb.AppendLine("SUMMARY:event1");
sb.AppendLine("TRANSP:TRANSPARENT");
sb.AppendLine("END:VEVENT");
sb.AppendLine("BEGIN:VEVENT");
sb.AppendLine("DTSTART;VALUE=DATE:20130703");
sb.AppendLine("DTEND;VALUE=DATE:20130704");
sb.AppendLine("DTSTAMP:20130127T040730Z");
sb.AppendLine("UID:" + "84395bf9-875e-4925-864f-910309e0a355");
sb.AppendLine("CREATED:20080624T082556Z");
sb.AppendLine("DESCRIPTION:");
sb.AppendLine("LAST-MODIFIED:" + "2013127T054320Z");
sb.AppendLine("LOCATION:");
sb.AppendLine("SEQUENCE:0");
sb.AppendLine("STATUS:CONFIRMED");
sb.AppendLine("SUMMARY:event2");
sb.AppendLine("TRANSP:TRANSPARENT");
sb.AppendLine("END:VEVENT");
sb.AppendLine("END:VCALENDAR");
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
ct.Parameters.Add("method", "REQUEST");
AlternateView avCal = AlternateView.CreateAlternateViewFromString(sb.ToString(), ct);
msg.AlternateViews.Add(avCal);
return msg;
}