У меня проблема с ICAL в почте. Все работает, кроме html body. если у меня нет ical, то тело html отображается в электронном письме, но если я использую ICAL, полный html отображается как текст. Кто-нибудь может сказать мне, в чем проблема с этим кодом!
public static void SendHTMLEmailWithGoogleInvite(string from, string to, string subj, string body, DateTime date)
{
System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
try { mm.To.Add(to); }
catch (Exception ex)
{
throw new Exception("Invalid receiver email address please update and retry again.", ex);
}
mm.To.Add(to);
from.Split();
mm.From = new System.Net.Mail.MailAddress(from);
mm.Subject = subj;
mm.Body = body;
mm.IsBodyHtml = true;
System.Net.Mail.SmtpClient SMTPServer = new System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings["mailServer"]);
SMTPServer.Port = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]);
SMTPServer.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SMTPUser"], ConfigurationManager.AppSettings["Pwd"]);
StringBuilder str = new StringBuilder();
str.AppendLine("BEGIN:VCALENDAR");
str.AppendLine("PRODID:-//GeO");
str.AppendLine("VERSION:2.0");
str.AppendLine("METHOD:REQUEST");
str.AppendLine("BEGIN:VEVENT");
str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", date));
str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", date));
str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", date));
str.AppendLine("LOCATION: " + "KOLKATA");
str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
str.AppendLine(string.Format("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:{0}", mm.Body));
str.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", mm.Body));
str.AppendLine(string.Format("SUMMARY;ENCODING=QUOTED-PRINTABLE:{0}", mm.Subject));
str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", mm.From.Address));
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:{1}", mm.From.DisplayName, mm.From.Address));
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;SCHEDULE-STATUS=1.2:mailto:{1}", mm.To[0].DisplayName, mm.To[0].Address));
str.AppendLine("BEGIN:VALARM");
str.AppendLine("TRIGGER:-PT24H");
str.AppendLine("ACTION:DISPLAY");
str.AppendLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Reminder");
str.AppendLine("END:VALARM");
str.AppendLine("END:VEVENT");
str.AppendLine("END:VCALENDAR");
System.Net.Mime.ContentType type = new System.Net.Mime.ContentType("text/calendar");
type.Parameters.Add("method", "REQUEST");
//type.Parameters.Add("method", "PUBLISH");
type.Parameters.Add("name", "ginvite.ics");
mm.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(str.ToString(), type));
SMTPServer.Send(mm);
}
Прикрепил снимок экрана электронного письма, где тело html отображается как html текст со всеми тегами.