Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- using System.Collections.Generic;
- using System.Net.Mail;
- namespace ConsoleApplication2
- {
- public class Mail
- {
- private SmtpClient sct = new SmtpClient();
- public Mail(string AsmtpHost, int Aport, System.Net.NetworkCredential Acredential, bool Assl)
- {
- if (AsmtpHost != "" && Aport > 0 && Acredential != null)
- {
- this.sct.Host = AsmtpHost;
- this.sct.Port = Aport;
- this.sct.Credentials = Acredential;
- this.sct.EnableSsl = Assl;
- }
- }
- public bool sendSMTP(MailMessage content)
- {
- bool send = true;
- SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
- client.UseDefaultCredentials = false;
- client.Credentials = new System.Net.NetworkCredential("lazzyboyr", "Lade_loulou63");
- client.EnableSsl = true;
- client.Send(content);
- return send;
- }
- public MailMessage AddAppointment(string location, string message, List<string> recipients, string subject,
- string sender, int priority, string AppointementSubject, string description, DateTime start, DateTime end)
- {
- try
- {
- StringBuilder str = new StringBuilder();
- var m = new MailMessage();
- m.Sender = new MailAddress(sender);
- string FormatDate = "yyyyMMddTHHmmssZ";
- string iCal =
- @"BEGIN:VCALENDAR
- PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
- VERSION:2.0
- METHOD:REQUEST
- X-MS-OLK-FORCEINSPECTOROPEN:TRUE
- BEGIN:VEVENT
- ATTENDEE;
- CN="+recipients[0].Split(new char[] { '@' })[0]+
- @" ;RSVP=TRUE;
- CLASS:PUBLIC
- CREATED:" +DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" DESCRIPTION:"+description+
- @" DTEND;VALUE=DATE-TIME:"+end.ToUniversalTime().ToString(FormatDate)+
- @" DTSTAMP;VALUE=DATE-TIME:" + DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" DTSTART;VALUE=DATE-TIME:" + start.ToUniversalTime().ToString(FormatDate)+
- @" LAST - MODIFIED:" + DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" LOCATION:"+location+
- @" ORGANIZER;CN="+
- @" PRIORITY:"+priority+
- @" SEQUENCE: 0
- SUMMARY; LANGUAGE = fr - be:"+AppointementSubject+
- @"
- TRANSP: OPAQUE
- UID:" + Guid.NewGuid().ToString("B")+
- @"X - MICROSOFT - CDO - BUSYSTATUS:TENTATIVE
- X - MICROSOFT - CDO - IMPORTANCE:1
- X - MICROSOFT - CDO - INTENDEDSTATUS:BUSY
- X - MICROSOFT - DISALLOW - COUNTER:FALSE
- X - MS - OLK - ALLOWEXTERNCHECK:TRUE
- X - MS - OLK - AUTOSTARTCHECK:FALSE
- X - MS - OLK - CONFTYPE:0
- X - MS - OLK - SENDER; CN ="+sender+@"
- BEGIN: VALARM
- TRIGGER:-PT15M
- ACTION: DISPLAY
- DESCRIPTION:Reminder
- END:VALARM
- END:VEVENT
- END:VCALENDAR";
- string iCali =
- @"BEGIN:VCALENDAR
- PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//FR
- VERSION:2.0
- METHOD:PUBLISH
- X-MS-OLK-FORCEINSPECTOROPEN:TRUE
- BEGIN:VEVENT
- CLASS:PUBLIC"+
- @" CREATED:" + DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" DESCRIPTION:" + description+
- @" DTEND:" + end.ToUniversalTime().ToString(FormatDate)+
- @" DTSTART:" + start.ToUniversalTime().ToString(FormatDate)+
- @" DTSTAMP:" + DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" LAST-MODIFIED:" + DateTime.Now.ToUniversalTime().ToString(FormatDate)+
- @" LOCATION:" + location+
- @" PRIORITY:" + priority+
- @" SEQUENCE:0"+
- @" SUMMARY+LANGUAGE=en-us:test"+
- @" TRANSP:OPAQUE"+
- @" UID:" + Guid.NewGuid().ToString().ToUpperInvariant()+
- @" X-MICROSOFT-CDO-BUSYSTATUS:BUSY
- X-MICROSOFT-CDO-IMPORTANCE:1
- X-MICROSOFT-DISALLOW-COUNTER:FALSE
- X-MS-OLK-AUTOFILLLOCATION:FALSE
- X-MS-OLK-CONFTYPE:0
- BEGIN:VALARM
- TRIGGER:-PT60M
- ACTION:DISPLAY
- DESCRIPTION:Reminder
- END:VALARM
- END:VEVENT
- END:VCALENDAR";
- Console.WriteLine(iCal);
- using (var iCalView = AlternateView.CreateAlternateViewFromString(iCal, new System.Net.Mime.ContentType("text/calendar")))
- {
- m.AlternateViews.Add(iCalView);
- var c = new SmtpClient("smtp.gmail.com", 587);
- m.Subject = subject;
- m.Body = message;
- m.From = new MailAddress(sender);
- foreach (var item in recipients)
- {
- m.To.Add(item);
- }
- m.Sender = new MailAddress(sender);
- c.EnableSsl = true;
- c.UseDefaultCredentials = false;
- c.Credentials = new System.Net.NetworkCredential("lazzyboyr", "Lade_loulou63");
- c.Send(m);
- }
- }
- catch (SmtpException ex)
- {
- throw new Exception("The followed error occurred: " + ex.Message);
- }
- return null;
- }
- /// <summary>
- /// send smtp mail with/out appointment
- /// </summary>
- /// <param name="emailbody">Corps du message(ce que vous avez à dire)</param>
- /// <param name="emailto">adresse mail du destinataire</param>
- /// <param name="startTime">objet dateTime du début de rendez vous</param>
- /// <param name="endTime">objet dateTime de la fin de rendez vous</param>
- /// <param name="SmtpHost">chaine de caractère représentant l'hôte du serveur smtp</param>
- /// <param name="port">port à utiliser pour la connnexion smtp</param>
- /// <param name="Credentials">Informations de connexion à utiliser pour se connecter au serveur smtp</param>
- /// <param name="emailfrom">adresse mail à utiliser pour envoyer le mail</param>
- /// <param name="namefrom">nom de l'envoyeur</param>
- /// <param name="subject">sujet de rendez-vous et objet du mail</param>
- public void test(string emailbody,string emailto, DateTime startTime, DateTime endTime, string emailfrom, string namefrom,
- string subject, bool Appointment)
- {
- string FormatDate = "yyyyMMddTHHmmssZ";
- string startTime1 = startTime.ToUniversalTime().ToString(FormatDate);
- string endTime1 = endTime.ToUniversalTime().ToString(FormatDate);
- SmtpClient sc = this.sct;
- MailMessage msg = new MailMessage();
- msg.From = new MailAddress("louis.rodde@outlook.com", "Mooi Test");
- msg.To.Add(new MailAddress(emailto));
- msg.Subject = "Holiday Approval";
- msg.Body = emailbody;
- if (Appointment)
- {
- try
- {
- if (emailto.Split(new char[] { '@' })[1] == "outlook.com")
- {
- StringBuilder str = new StringBuilder();
- str.AppendLine("BEGIN:VCALENDAR");
- //PRODID: identifier for the product that created the Calendar object
- str.AppendLine("PRODID:-//Microsoft//Outlook MIMEDIR//EN");
- str.AppendLine("VERSION:2.0");
- str.AppendLine("METHOD:REQUEST");
- str.AppendLine("BEGIN:VEVENT");
- str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime1));
- str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow));
- str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime1));
- str.AppendLine(string.Format("LOCATION: {0}", "Location"));
- // UID should be unique.
- 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("STATUS:CONFIRMED");
- str.AppendLine("BEGIN:VALARM");
- str.AppendLine("TRIGGER:-PT15M");
- str.AppendLine("ACTION:Accept");
- str.AppendLine("DESCRIPTION:Reminder");
- str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY");
- str.AppendLine("END:VALARM");
- str.AppendLine("END:VEVENT");
- str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", msg.From.Address));
- foreach (var item in msg.To)
- {
- str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", item.DisplayName, item.Address));
- }
- str.AppendLine("END:VCALENDAR");
- System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
- ct.Parameters.Add("method", "REQUEST");
- ct.Parameters.Add("name", "meeting.ics");
- AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
- msg.AlternateViews.Add(avCal);
- }
- else
- {
- StringBuilder str = new StringBuilder();
- str.AppendLine("BEGIN:VCALENDAR");
- //PRODID: identifier for the product that created the Calendar object
- str.AppendLine("PRODID:-//Google Inc// Google Calendar 70.9054//EN");
- str.AppendLine("VERSION:2.0");
- str.AppendLine("METHOD:REQUEST");
- str.AppendLine("BEGIN:VEVENT");
- str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime1));
- str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow));
- str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime1));
- str.AppendLine(string.Format("LOCATION: {0}", "Location"));
- // UID should be unique.
- 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("STATUS:CONFIRMED");
- str.AppendLine("BEGIN:VALARM");
- str.AppendLine("TRIGGER:-PT15M");
- str.AppendLine("ACTION:Accept");
- str.AppendLine("DESCRIPTION:Reminder");
- str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY");
- str.AppendLine("END:VALARM");
- str.AppendLine("END:VEVENT");
- 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("END:VCALENDAR");
- System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
- ct.Parameters.Add("method", "REQUEST");
- ct.Parameters.Add("name", "meeting.ics");
- AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
- msg.AlternateViews.Add(avCal);
- }
- }
- catch (Exception)
- {
- throw;
- }
- }
- sc.Send(msg);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Mail pop = new Mail("smtp.gmail.com", 587, new System.Net.NetworkCredential("lazzyboyr", "Lade_loulou63"), true);
- MailMessage MM = new MailMessage("lazzyboyr@gmail.com", "louis.rodde@outlook.com", "test", "J'aime les chats");
- // pop.sendSMTP(MM);
- // pop.AddAppointment("Satan's house", "All Mighty Lucifer", new List<string> { "louis.rodde@outlook.com" }, "Satan's Project", "louis.rodde@inforsud.com", 5,"We will conquer the world", "Ready to conquer the World ?", new DateTime(1997, 10, 7, 19, 11, 25), new DateTime(2031, 7, 15, 1, 24, 12));
- pop.test("they're coming for you","lazzyboyr@gmail.com", new DateTime(1997, 10, 7, 19, 11, 25), new DateTime(2031, 7, 15, 1, 24, 12), "louis.rodde@outlook.com", "louis", "Rendez-Vous St Lary", true);
- Console.Write("avec");
- pop.test("Unless...", "louis.rodde@outlook.com", new DateTime(1997, 10, 7, 19, 11, 25), new DateTime(2031, 7, 15, 1, 24, 12), "lazzyboyr@gmail.com", "louis", "Rendez-Vous St Lary", true);
- Console.Write("sans");
- pop.test("You kill yourself now!", "louis.rodde@outlook.com", new DateTime(1997, 10, 7, 19, 11, 25), new DateTime(2031, 7, 15, 1, 24, 12), "lazzyboyr@gmail.com", "louis", "Rendez-Vous St Lary", false);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement