public async Task <Data.Entities.Email> Save(Data.Entities.Email record) { if (record.EmailId <= 0) { await _dbContext.AddAsync(record); } else { _dbContext.Update(record); } await _dbContext.SaveChangesAsync(); return(record); }
public static List <Data.Entities.Email> getGMailEmail(string inboxPath, string username, string password) { List <Data.Entities.Email> emails = new List <Data.Entities.Email>(); Data.Entities.Email email = null; bool isHtml = true; ImapX.ImapClient client = new ImapX.ImapClient("imap.gmail.com", 993, true); bool result = false; result = client.Connection(); result = client.LogIn(username, password); if (result) { ImapX.FolderCollection folders = client.Folders; ImapX.MessageCollection messages = client.Folders["export"].Search("ALL", true); // .Search("export", true); //true - means all message parts will be received from server if (messages != null && messages.Count > 0) { for (int i = 0; i < messages.Count; i++) { email = new Data.Entities.Email(); email.From = messages[i].From.DisplayName; email.Subject = messages[i].Subject; email.TextBody = messages[i].GetDecodedBody(out isHtml); //email.TextBody = messages[i].TextBody.TextData; email.ReceivedDate = messages[i].Date; emails.Add(email); } } } return(emails); }
public static List<Data.Entities.Email> getGMailEmail(string inboxPath, string username, string password) { List<Data.Entities.Email> emails = new List<Data.Entities.Email>(); Data.Entities.Email email = null; bool isHtml = true; ImapX.ImapClient client = new ImapX.ImapClient("imap.gmail.com", 993, true); bool result = false; result = client.Connection(); result = client.LogIn(username, password); if (result) { ImapX.FolderCollection folders = client.Folders; ImapX.MessageCollection messages = client.Folders["export"].Search("ALL", true); // .Search("export", true); //true - means all message parts will be received from server if (messages != null && messages.Count > 0) { for (int i = 0; i < messages.Count; i++) { email = new Data.Entities.Email(); email.From = messages[i].From.DisplayName; email.Subject = messages[i].Subject; email.TextBody = messages[i].GetDecodedBody(out isHtml); //email.TextBody = messages[i].TextBody.TextData; email.ReceivedDate = messages[i].Date; emails.Add(email); } } } return emails; }
public async Task <IActionResult> Post([FromBody] EmailRequest model) { Data.Entities.Email newRecord = null; if (ModelState.IsValid) { InitUserCredentials(); newRecord = new Data.Entities.Email { Guid = Guid.NewGuid(), CompanyGuid = CompanyGuid, CreationTime = DateTime.UtcNow, CreationUserGuid = UserGuid }; newRecord = _mapper.Map(model, newRecord); try { User user = await _userService.Get((Guid)model.ToUserGuid); if (user != null) { var toEmailAddress = user.Email; #if !RELEASE toEmailAddress = "*****@*****.**"; #endif var response = await _sendGridService.SendEmail(new SendGridRequest { To = new [] { new EmailAddress(toEmailAddress) }, DynamicTemplateData = new SendGridDynamicData { TicketGuid = (Guid)model.TicketGuid }, Template = (Enumerations.SendGridTemplateEnum)model.SendGridTemplate }); if (response.StatusCode != HttpStatusCode.BadRequest) { var messageKvp = response.Headers.FirstOrDefault(x => x.Key == "X-Message-Id"); if (messageKvp.Value.Any()) { newRecord.SendGridId = messageKvp.Value.FirstOrDefault(); } await _emailService.Save(newRecord); } } } catch (Exception e) { Log.Error(e.StackTrace); throw; } } return(CreatedAtAction(nameof(Post), _mapper.Map(newRecord, new EmailResponse()))); }