public override Task <MailReply> GetMail(MailRequest request, ServerCallContext context) { var mailReply = new MailReply(); try { List <Core.Entities.ScrapeData> links = storageRepository.GetDailyData(); if (CollectionHasData(links)) { var linkReply = links.Select(x => new ScrapeDataReply { Title = x.Title, Url = x.Url }); mailReply.Links.Add(linkReply); } } catch { //Log exception } return(Task.FromResult(mailReply)); }
public async Task AddReply(MailReply reply) { _context.MailReplies.Add(reply); await _context.SaveChangesAsync(); }
public async Task <IActionResult> replyOnMail(MailReply email) { MimeMessage message = new MimeMessage(); // Retrieve searched email. MailMessage originalMessage; using (ImapClient imap = new ImapClient()) { imap.Connect("smtp.gmail.com", 993, true); imap.Authenticate("*****@*****.**", "Rstest123456"); //imap.SelectInbox(); var inbox = imap.Inbox; await inbox.OpenAsync(FolderAccess.ReadWrite); //string search = @"SUBJECT ""Subj za test"""; //originalMessage = imap.GetMessage(imap.SearchMessageNumbers(search).First()); var results = await inbox.SearchAsync(SearchOptions.All, SearchQuery.SubjectContains(email.Subject)).ConfigureAwait(false); foreach (var uniqueId in results.UniqueIds) { message = inbox.GetMessage(uniqueId); } //Create reply email with sender and receiver addresses swapped. //InternetAddressList temp = message.To; MailMessage replyMessage = new MailMessage(); replyMessage.From = new MailAddress(message.From.ToString()); replyMessage.To.Add(email.From.ToString()); //if (!string.IsNullOrEmpty(message.MessageId)) //{ // replyMessage.ReplyTo= message.MessageId; // foreach (var id in message.References) // replyMessage.References.Add(id); // replyMessage.References.Add(message.MessageId); //} replyMessage.Headers.Add("Message-Id", message.MessageId); // Add 'In-Reply-To' and 'References' header. //replyMessage.Headers.Add( //new Header(HeaderId.InReplyTo, message.MessageId)); //replyMessage.Headers.Add( // new Header(HeaderId.References, message.MessageId)); // Set subject. replyMessage.Subject = $"Re: { message.Subject }"; // Set reply message message. replyMessage.Body = email.Message; // Append original message text. replyMessage.Body += $"<div>On {message.Date.LocalDateTime}, {message.From} </div>" + $"<blockquote>{message.TextBody}</blockquote>"; replyMessage.IsBodyHtml = true; // Send reply email. using (SmtpClient smtp = new SmtpClient("smtp.gmail.com")) { //smtp.Connect(); //smtp.Authenticate("<USERNAME>", "<PASSWORD>"); //smtp.SendMessage(replyMessage); smtp.Port = 587; smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential("*****@*****.**", "Rstest123456"); smtp.EnableSsl = true; smtp.Send(replyMessage); } } return(Ok()); }