public string PostMails(MailData mails) { var result = true; var failedMessage = ""; try { MailSender.Default.Send("***YOUR MAIL***@gmail.com", mails.Recipients, mails.Subject, mails.Body); } catch (SmtpException e) { result = false; failedMessage = e.Message; } Mail mail = new Mail() { Body = mails.Body, Subject = mails.Subject, SendingDate = DateTime.Now, Result = result, FailedMessage = failedMessage }; db.Mails.Add(mail); foreach (var recipient in mails.Recipients) { db.SentMails.Add(new SentMail() { Recipient = recipient, Mail = mail }); } db.SaveChanges(); if (result) { return("Message successfully sended"); } return("Message not sended. " + failedMessage); }
public static void MainLogic(object sender) { try { // Получаем все письма с почтового ящика //IEnumerable<MailMessage> messages = GetMessages(); // Сохраняем полученные файлы во временный каталог //SaveMail(messages); // Получаем все файлы с информацией об авиа билетах и багаже IEnumerable <FileInfo> aviaFiles = GetFiles("electronic ticket"); IEnumerable <FileInfo> baggageFiles = GetFiles("baggage"); Parser parser = new Parser(); AviaTicket ticket = null; AviaBaggage baggage = null; foreach (FileInfo item in aviaFiles) { try { ticket = parser.ParseAviaTicket(item.FullName); } catch (Exception ex) { Console.WriteLine(item.FullName); } using (MailDb db = new MailDb()) { var query = from t in db.Tickets where t.TicketNumber == ticket.TicketNumber select t; if (query.Count() == 0) { db.Tickets.Add(new Ticket() { TicketNumber = ticket.TicketNumber, Agent = ticket.Agent }); db.SaveChanges(); SaveFileToXML(ticket); } } } foreach (FileInfo item in baggageFiles) { try { baggage = parser.ParseAviaBaggage(item.FullName); } catch (Exception ex) { Console.WriteLine(item.FullName); } using (MailDb db = new MailDb()) { var query = from b in db.Baggages where b.BaggageNumber == baggage.No select b; if (query.Count() == 0) { db.Baggages.Add(new Baggage() { BaggageNumber = baggage.No }); db.SaveChanges(); SaveFileToXML(baggage); } } } Console.WriteLine("End parsing!"); DirectoryInfo tempFolder = new DirectoryInfo(@".\AviaTicketsFromMail"); try { //tempFolder.Delete(true); } catch (Exception ex) { } } catch (Exception ex) { string str = $"Date: {DateTime.Now}\nError: {ex.Message}\nStackTrace: {ex.StackTrace}"; using (StreamWriter writer = new StreamWriter(@"error.log", true, Encoding.UTF8)) { writer.WriteLine(str); } } }