private void PreencheEmails(Usuario_Imap usuario_imap, string pasta, ref List <Email> emails) { Imap imap = usuario_imap.Imap; using (ImapConnect connection = new ImapConnect(imap.Host, imap.Porta, imap.SSL)) { ImapCommand command = new ImapCommand(connection); ImapAuthenticate authentication = new ImapAuthenticate(connection, usuario_imap.Email, usuario_imap.Password); ImapMailbox mailbox; connection.Open(); authentication.Login(); mailbox = command.Select(pasta); mailbox = command.Fetch(mailbox); foreach (ImapMailboxMessage m in mailbox.Messages.Reverse <ImapMailboxMessage>()) { string destinatarios = string.Empty; Email email = new Email(); m.To.ToList().ForEach(a => destinatarios += a.Address + "; "); email.Remetente = m.From.Address; email.Destinatario = destinatarios.Trim(); email.Assunto = m.Subject; email.Data_Envio = m.Sent.ToString("dd/MM/yyyy"); email.Usuario_Imap = usuario_imap; ImapMailboxMessage msg = command.FetchBodyStructure(m); if (m.HasText) { msg = command.FetchBodyPart(m, m.Text); email.Mensagem = msg.BodyParts[m.Text].Data; } if (m.HasHTML) { msg = command.FetchBodyPart(m, m.HTML); string html = msg.BodyParts[m.HTML].Data; Encoding encoding = msg.BodyParts[m.HTML].Encoding; if (msg.BodyParts[m.HTML].ContentEncoding == BodyPartEncoding.BASE64) { email.Mensagem = html.DecodeBase64(encoding); } else { email.Mensagem = html.ToUTF8(encoding); } } emails.Add(email); } authentication.Logout(); connection.Close(); } }
// GET api/UsuarioImap/5 public Usuario_Imap GetUsuario_Imap(int id) { Usuario_Imap usuario_imap = db.Usuario_Imap.Find(id); if (usuario_imap == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); } return(usuario_imap); }
// POST api/UsuarioImap public HttpResponseMessage PostUsuario_Imap(Usuario_Imap usuario_imap) { if (ModelState.IsValid) { db.Usuario_Imap.Add(usuario_imap); db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, usuario_imap); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = usuario_imap.Id })); return(response); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
// DELETE api/UsuarioImap/5 public HttpResponseMessage DeleteUsuario_Imap(int id) { Usuario_Imap usuario_imap = db.Usuario_Imap.Find(id); if (usuario_imap == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } db.Usuario_Imap.Remove(usuario_imap); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK, usuario_imap)); }
// PUT api/UsuarioImap/5 public HttpResponseMessage PutUsuario_Imap(int id, Usuario_Imap usuario_imap) { if (ModelState.IsValid && id == usuario_imap.Id) { db.Entry(usuario_imap).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }