请耐心等待这个问题。据我了解,如果电子邮件客户端从 POP3 服务器读取电子邮件,则该电子邮件将从服务器中删除,并且仅存在于电子邮件客户端中。
在尝试开发非常简单的网络邮件客户端时,我设法将脚本放在一起,从给定的服务器读取电子邮件。但是我正在努力寻找一种最简单的方法来在客户端上存档该电子邮件。
这是片段:
protected void Read_Emails()
{
Pop3Client pop3Client;
if (Session["Pop3Client"] == null)
{
pop3Client = new Pop3Client();
pop3Client.Connect("mail.mail.com", 110, false);
pop3Client.Authenticate("user@mail.com", "password");
Session["Pop3Client"] = pop3Client;
}
else
{
pop3Client = (Pop3Client)Session["Pop3Client"];
}
int count = pop3Client.GetMessageCount();
DataTable dtMessages = new DataTable();
dtMessages.Columns.Add("Number");
dtMessages.Columns.Add("MessageNumber");
dtMessages.Columns.Add("From");
dtMessages.Columns.Add("Subject");
dtMessages.Columns.Add("DateSent");
for (int i = 1; i <= count; i++)
{
try
{
Message message = pop3Client.GetMessage(i);
dtMessages.Rows.Add();
dtMessages.Rows[dtMessages.Rows.Count - 1]["Number"] = i;
dtMessages.Rows[dtMessages.Rows.Count - 1]["From"] = message.Headers.From;
dtMessages.Rows[dtMessages.Rows.Count - 1]["Subject"] = message.Headers.Subject;
dtMessages.Rows[dtMessages.Rows.Count - 1]["DateSent"] = message.Headers.DateSent;
}catch{}
}
gvEmails.DataSource = dtMessages;
gvEmails.DataBind();
}
和 ASP.NET 部分
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="MA2._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:GridView ID="gvEmails" runat="server" AutoGenerateColumns = "false">
<Columns>
<asp:BoundField HeaderText = "#" DataField = "Number" />
<asp:BoundField HeaderText = "From" DataField = "From" />
<asp:HyperLinkField HeaderText = "Subject" DataNavigateUrlFields = "MessageNumber" DataNavigateUrlFormatString = "~/ShowMessageCS.aspx?MessageNumber={0}" DataTextField = "Subject" />
<asp:BoundField HeaderText = "Date" DataField = "DateSent" />
</Columns>
</asp:GridView>
</asp:Content>
我的问题是如何在客户端保存收到的电子邮件?使用数据库或将它们作为文件存储在服务器上?
我到处寻找可以找到的所有示例,但在任何地方都找不到有关在客户端上保留电子邮件的部分。