protected void Page_Load(object sender, EventArgs e)
 {
     int emailId = -1;
     if (Request.QueryString["emailId"] == null)
     {
         Response.Redirect("Pop3Client.aspx");
         Response.Flush();
         Response.End();
     }
     else
         Email = Session["email"].ToString();
     Password = Session["pwd"].ToString();
         emailId = Convert.ToInt32(Request.QueryString["emailId"]);
     Email email = null;
     List<MessagePart> msgParts = null;
     using (Prabhu.Pop3Client client = new Prabhu.Pop3Client (Host, Port,Email, Password, true))
     {
         client.Connect();
         email = client.FetchEmail(emailId);
         msgParts = client.FetchMessageParts(emailId);
     }
     if (email == null || msgParts == null)
     {
         Response.Redirect("Pop3Client.aspx");
         Response.Flush();
         Response.End();
     }
     MessagePart preferredMsgPart = FindMessagePart(msgParts, "text/html");
     if (preferredMsgPart == null)
         preferredMsgPart = FindMessagePart(msgParts, "text/plain");
     else if (preferredMsgPart == null && msgParts.Count > 0)
         preferredMsgPart = msgParts[0];
     string contentType, charset, contentTransferEncoding, body = null;
     if (preferredMsgPart != null)
     {
         contentType = preferredMsgPart.Headers["Content-Type"];
         charset = "us-ascii";
         contentTransferEncoding =preferredMsgPart.Headers["Content-Transfer-Encoding"];
         Match m = CharsetRegex.Match(contentType);
         if (m.Success)
             charset = m.Groups["charset"].Value;
         HeadersLiteral.Text = contentType != null ? "Content-Type: " +contentType + "<br />" : string.Empty;
         HeadersLiteral.Text += contentTransferEncoding != null ?"Content-Transfer-Encoding: " +contentTransferEncoding : string.Empty;
         if (contentTransferEncoding != null)
         {
             if (contentTransferEncoding.ToLower() == "base64")
                 body = DecodeBase64String(charset,preferredMsgPart.MessageText);
             else if (contentTransferEncoding.ToLower() =="quoted-printable")
                 body = DecodeQuotedPrintableString(preferredMsgPart.MessageText);
             else
                 body = preferredMsgPart.MessageText;
         }
         else
             body = preferredMsgPart.MessageText;
     }
     EmailIdLiteral.Text = Convert.ToString(emailId);
     DateLiteral.Text = email.UtcDateTime.ToString(); ;
     FromLiteral.Text = email.From;
     SubjectLiteral.Text = email.Subject;
     BodyLiteral.Text = preferredMsgPart != null ? (preferredMsgPart.Headers["Content-Type"].IndexOf("text/plain") != -1 ?"<pre>" + FormatUrls(body) + "</pre>" : body) : null;
     ListAttachments(msgParts);
 }
コード例 #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     int page = 1;
     if (Request.QueryString["page"] == null)
     {
         Response.Redirect("Pop3Client.aspx?page=1");
         Response.Flush();
         Response.End();
     }
     else
         page = Convert.ToInt32(Request.QueryString["page"]);
     try
     {
         Email = Session["email"].ToString();
         Password = Session["pwd"].ToString();
     }
     catch (Exception ex) { Response.Redirect("Home.aspx"); }
     int totalEmails;
     List<Email> emails;
     string emailAddress;
     using (Prabhu.Pop3Client client = new Prabhu.Pop3Client(Host, Port, Email, Password, true))
     {
         emailAddress = client.Email;
         client.Connect();
         totalEmails = client.GetEmailCount();
         emails = client.FetchEmailList(((page - 1) * NoOfEmailsPerPage) + 1, NoOfEmailsPerPage);
     }
     int totalPages;
     int mod = totalEmails % NoOfEmailsPerPage;
     if (mod == 0)
         totalPages = totalEmails / NoOfEmailsPerPage;
     else
        totalPages = ((totalEmails - mod) / NoOfEmailsPerPage) + 1;
     for (int i = 0; i < emails.Count; i++)
     {
         Email email = emails[i];
         int emailId = ((page - 1) * NoOfEmailsPerPage) + i + 1;
         TableCell noCell = new TableCell();
         noCell.CssClass = "emails-table-cell";
         noCell.Text = Convert.ToString(emailId);
         TableCell fromCell = new TableCell();
         fromCell.CssClass = "emails-table-cell";
         fromCell.Text = email.From;
         TableCell subjectCell = new TableCell();
         subjectCell.CssClass = "emails-table-cell";
         subjectCell.Style["width"] = "300px";
         subjectCell.Text = String.Format(DisplayEmailLink, emailId, email.Subject);
         TableCell dateCell = new TableCell();
         dateCell.CssClass = "emails-table-cell";
         if (email.UtcDateTime != DateTime.MinValue)
            dateCell.Text = email.UtcDateTime.ToString();
         TableRow emailRow = new TableRow();
         emailRow.Cells.Add(noCell);
         emailRow.Cells.Add(fromCell);
         emailRow.Cells.Add(subjectCell);
         emailRow.Cells.Add(dateCell);
         EmailsTable.Rows.AddAt(2 + i, emailRow);
     }
     if (totalPages > 1)
     {
         if (page > 1)
             PreviousPageLiteral.Text = String.Format(SelfLink, page - 1, "Previous Page");
         if (page > 0 && page < totalPages)
             NextPageLiteral.Text = String.Format(SelfLink, page + 1, "Next Page");
     }
     EmailFromLiteral.Text = Convert.ToString(((page - 1) * NoOfEmailsPerPage) + 1);
     EmailToLiteral.Text = Convert.ToString(page * NoOfEmailsPerPage);
     EmailTotalLiteral.Text = Convert.ToString(totalEmails);
     EmailLiteral.Text = emailAddress;
 }