示例#1
0
        public void ReadMail()
        {
            try {
                Pop3Client pop3Client;

                pop3Client = new Pop3Client();
                pop3Client.Connect(emailaccount.POP3, Convert.ToInt32(emailaccount.POP3port), emailaccount.IsSecured);
                pop3Client.Authenticate(emailaccount.emailid, emailaccount.password);

                // int MessageNum;
                int count   = pop3Client.GetMessageCount();
                var Emails  = new List <POPEmail>();
                int counter = 0;
                for (int i = count; i >= 1; i--)
                {
                    OpenPop.Mime.Message message = pop3Client.GetMessage(i);
                    POPEmail             email   = new POPEmail()
                    {
                        // MessageNumber = i,
                        MessageNumber = message.Headers.MessageId,
                        // message.Headers.Received.
                        //MessageNum=MessageNumber,
                        Subject  = message.Headers.Subject,
                        DateSent = message.Headers.DateSent,
                        From     = message.Headers.From.Address,
                        //From = string.Format("<a href = 'mailto:{1}'>{0}</a>", message.Headers.From.DisplayName, message.Headers.From.Address),
                    };
                    MessagePart body = message.FindFirstHtmlVersion();
                    if (body != null)
                    {
                        email.Body = body.GetBodyAsText();
                    }
                    else
                    {
                        body = message.FindFirstPlainTextVersion();
                        if (body != null)
                        {
                            email.Body = body.GetBodyAsText();
                        }
                    }
                    List <MessagePart> attachments = message.FindAllAttachments();

                    foreach (MessagePart attachment in attachments)
                    {
                        email.Attachments.Add(new Attachment
                        {
                            FileName    = attachment.FileName,
                            ContentType = attachment.ContentType.MediaType,
                            Content     = attachment.Body
                        });
                    }
                    InsertEmailMessages(email.MessageNumber, email.Subject, email.DateSent, email.From, email.Body);
                    Emails.Add(email);
                    counter++;
                    //if (counter > 2)
                    //{
                    //    break;
                    //}
                }
                var emails = Emails;
            }
            catch (Exception ex) {
                //   continue;
                throw ex;
            }
        }
        public ActionResult ReadMail()
        {
            int        eid     = Convert.ToInt32(Session["Email"]);
            var        PEmails = db.CnfiEmail.FirstOrDefault(x => x.id == eid);
            var        pid     = db.PoPP.FirstOrDefault(x => x.Pid == PEmails.Pid);
            Pop3Client pop3Client;

            if (Session["Pop3Client"] == null)
            {
                pop3Client = new Pop3Client();
                pop3Client.Connect(pid.ServerName, pid.Port, pid.SSL);
                pop3Client.Authenticate(PEmails.Email, PEmails.password);
                Session["Pop3Client"] = pop3Client;
            }
            else
            {
                pop3Client = (Pop3Client)Session["Pop3Client"];
            }
            int count   = pop3Client.GetMessageCount();
            var Emails  = new List <POPEmail>();
            int counter = 0;

            for (int i = count; i >= 1; i--)
            {
                Message  message = pop3Client.GetMessage(i);
                POPEmail email   = new POPEmail()
                {
                    MessageNumber = i,
                    Subject       = message.Headers.Subject,
                    DateSent      = message.Headers.DateSent,
                    From          = string.Format("<a href = 'mailto:{1}'>{0}</a>", message.Headers.From.DisplayName, message.Headers.From.Address),
                };
                MessagePart body = message.FindFirstHtmlVersion();
                if (body != null)
                {
                    email.Body = body.GetBodyAsText();
                }
                else
                {
                    body = message.FindFirstPlainTextVersion();
                    if (body != null)
                    {
                        email.Body = body.GetBodyAsText();
                    }
                }
                List <MessagePart> attachments = message.FindAllAttachments();

                foreach (MessagePart attachment in attachments)
                {
                    email.Attachments.Add(new Attachment
                    {
                        FileName    = attachment.FileName,
                        ContentType = attachment.ContentType.MediaType,
                        Content     = attachment.Body
                    });
                }
                Emails.Add(email);
                counter++;
                if (counter > 2)
                {
                    break;
                }
            }
            var emails = Emails;

            return(View(emails));
        }