Exemple #1
0
        public static void SendCalendarByMail(CalendarRequest mailRequest)
        {
            var         calendarEvents = mailRequest.CalendarEvents;
            MailMessage message        = new MailMessage();

            foreach (string item in mailRequest.To)
            {
                message.To.Add(item);
            }

            message.From       = new MailAddress(mailRequest.FromEmail, mailRequest.FromName);
            message.Subject    = mailRequest.Subject;
            message.Body       = mailRequest.HtmlBody;
            message.IsBodyHtml = true;

            var          serializedCalendar = generateCalendarFile(calendarEvents);
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(serializedCalendar));

            System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(ms, "event.ics", "text/calendar");
            message.Attachments.Add(attachment);

            SmtpClient MailClient = new SmtpClient("smtp.gmail.com");

            MailClient.EnableSsl   = true;
            MailClient.Credentials = new NetworkCredential(mailRequest.NetworkCredentialUserName, mailRequest.NetworkCredentialPassword);
            MailClient.Send(message);
        }
Exemple #2
0
        public static void DownloadCalendarFile(HttpContext httpContext, CalendarRequest cRequest)
        {
            var calendarEvents       = cRequest.CalendarEvents;
            var Response             = httpContext.Response;
            var CalendarItemAsString = generateCalendarFile(calendarEvents);

            Response.ClearHeaders();
            Response.Clear();
            Response.Buffer      = true;
            Response.ContentType = "text/calendar";
            Response.AddHeader("content-length", CalendarItemAsString.Length.ToString());
            Response.AddHeader("content-disposition", "attachment; filename=event.ics");
            Response.Write(CalendarItemAsString);
            Response.Flush();
            httpContext.ApplicationInstance.CompleteRequest();
        }