By using the below code, we can send the invite meeting request to any.
//To send Calder Meeting Event request
private void sendMeetingRequest(DateTime startTime, DateTime endTime, string candidateEmail, string status, string location)
{
try
{
//create the credentials
NetworkCredential cred = new NetworkCredential(ConfigurationManager.AppSettings["userName"], ConfigurationManager.AppSettings["password"]);
//create the smtp client...these settings are for gmail
SmtpClient sc = new SmtpClient(ConfigurationManager.AppSettings["SMPTPServerName"], (Convert.ToInt32(ConfigurationManager.AppSettings["portNo"])));
sc.UseDefaultCredentials = false;
sc.EnableSsl = true;
//credentials (username, pass of sending account) assigned here
sc.Credentials = cred;
MailMessage msg = new MailMessage();
msg.From = new MailAddress(ConfigurationManager.AppSettings["userName"], "FromMe");
msg.To.Add(new MailAddress(candidateEmail, "From My Portal"));
msg.Subject = "Interview Schedueled";
msg.Body = "Interview Scheduled. Get ready to face it.";
//DateTime startTime = DateTime.UtcNow.AddDays(1);
//DateTime endTime = DateTime.UtcNow.AddHours(25);
StringBuilder str = new StringBuilder();
str.AppendLine("BEGIN:VCALENDAR");
str.AppendLine("PRODID:-//My Group");
str.AppendLine("VERSION:2.0");
str.AppendLine("METHOD:REQUEST");
str.AppendLine("BEGIN:VEVENT");
str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime));
str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow));
str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime));
string meetingLocation = "LOCATION: " + location;
str.AppendLine(meetingLocation);
str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
str.AppendLine(string.Format("DESCRIPTION:{0}", msg.Body));
str.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", msg.Body));
str.AppendLine(string.Format("SUMMARY:{0}", msg.Subject));
str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", msg.From.Address));
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, msg.To[0].Address));
str.AppendLine("BEGIN:VALARM");
str.AppendLine("TRIGGER:-PT15M");
str.AppendLine("ACTION:DISPLAY");
str.AppendLine("DESCRIPTION:Reminder");
str.AppendLine("END:VALARM");
str.AppendLine("END:VEVENT");
str.AppendLine("END:VCALENDAR");
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
ct.Parameters.Add("method", "REQUEST");
AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
msg.AlternateViews.Add(avCal);
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
sc.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine(ex);
if(ex.InnerException!=null)
Console.WriteLine("InnerException is: {0}", ex.InnerException);
}
}