------------------jmail4.4 邮件接收问题----------------------------------代码如下---------------------
/// <summary>
/// 读取邮件
/// </summary>
/// <param name="mailuser">邮箱用户名</param>
/// <param name="password">邮箱密码</param>
/// <param name="pop3">服务器</param>
/// <param name="port">端口</param>
private List<Model.MailList> ReadMail(string mailuser, string password, string pop3, int port)
{
List<Model.MailList> listMail = new List<Model.MailList>();
Model.MailList maillist = null; //建立接收邮件对象
jmail.POP3Class mail = new POP3Class(); //建立邮件信息对象
jmail.Message mailMessage = null;
//建立邮件附件对象
jmail.Attachment att = null; //建立邮件附件集对象
jmail.Attachments atts = null; Hashtable hs = new Hashtable(); //连接服务器
try
{
mail.Connect(mailuser, password, pop3, port);
}
catch (Exception ex)
{
Page.RegisterStartupScript("Open", "<script>alert('" + ex.Message + "')</script>");
} try
{
if (mail.Count > 0)
{
this.lbMailCount.Text = "共有" + mail.Count + "封邮件";
for (int i = 1; i <= mail.Count; i++)
{
mailMessage = mail.Messages[i];
maillist = new Model.MailList(); maillist.Body = mailMessage.HTMLBody;
maillist.Categoryid = 0;
atts = mailMessage.Attachments;
maillist.Size = mailMessage.Size;
maillist.Sendtime =mailMessage.Date; //这个时间是定时发送的时间
maillist.Title = mailMessage.Subject;
maillist.Sender = mailMessage.FromName;
maillist.Sendmail = mailMessage.From;
maillist.Userid = ((User)Session["user"]).Userid;
maillist.Id = GetGuid();
maillist.Msgid = mailMessage.GetHashCode();
//maillist.Header = "";
maillist.Clientid = 0;
maillist.Mailid = MailAccountBll.GetMailId(ddlMailList.SelectedValue);
listMail.Add(maillist);
hs.Add(maillist.Msgid, atts);
// dAtts.Add(maillist.Msgid, atts);
} Session["listMail"] = listMail;
Session["hs"] = hs;
}
}
catch (Exception ex)
{
Page.RegisterStartupScript("Open", "<script>alert('" + ex.Message + "')</script>");
} //断开POP3连接
mail.Disconnect(); Session["listMail"] = listMail;
return listMail;
}---------------------------代码结束---------------------------
----------------------需要解决的问题-------------------------1.我要将服务器上的邮件插入到数据库中,现要获取邮件的唯一标识符来判断此邮件是否插入过
2.jmail4.4如何获取邮件的发送时间
maillist.Sendtime =mailMessage.Date; //这个时间是定时发送的时间
这行代码只能获取定时发送时间在线等待高人指点
/// <summary>
/// 读取邮件
/// </summary>
/// <param name="mailuser">邮箱用户名</param>
/// <param name="password">邮箱密码</param>
/// <param name="pop3">服务器</param>
/// <param name="port">端口</param>
private List<Model.MailList> ReadMail(string mailuser, string password, string pop3, int port)
{
List<Model.MailList> listMail = new List<Model.MailList>();
Model.MailList maillist = null; //建立接收邮件对象
jmail.POP3Class mail = new POP3Class(); //建立邮件信息对象
jmail.Message mailMessage = null;
//建立邮件附件对象
jmail.Attachment att = null; //建立邮件附件集对象
jmail.Attachments atts = null; Hashtable hs = new Hashtable(); //连接服务器
try
{
mail.Connect(mailuser, password, pop3, port);
}
catch (Exception ex)
{
Page.RegisterStartupScript("Open", "<script>alert('" + ex.Message + "')</script>");
} try
{
if (mail.Count > 0)
{
this.lbMailCount.Text = "共有" + mail.Count + "封邮件";
for (int i = 1; i <= mail.Count; i++)
{
mailMessage = mail.Messages[i];
maillist = new Model.MailList(); maillist.Body = mailMessage.HTMLBody;
maillist.Categoryid = 0;
atts = mailMessage.Attachments;
maillist.Size = mailMessage.Size;
maillist.Sendtime =mailMessage.Date; //这个时间是定时发送的时间
maillist.Title = mailMessage.Subject;
maillist.Sender = mailMessage.FromName;
maillist.Sendmail = mailMessage.From;
maillist.Userid = ((User)Session["user"]).Userid;
maillist.Id = GetGuid();
maillist.Msgid = mailMessage.GetHashCode();
//maillist.Header = "";
maillist.Clientid = 0;
maillist.Mailid = MailAccountBll.GetMailId(ddlMailList.SelectedValue);
listMail.Add(maillist);
hs.Add(maillist.Msgid, atts);
// dAtts.Add(maillist.Msgid, atts);
} Session["listMail"] = listMail;
Session["hs"] = hs;
}
}
catch (Exception ex)
{
Page.RegisterStartupScript("Open", "<script>alert('" + ex.Message + "')</script>");
} //断开POP3连接
mail.Disconnect(); Session["listMail"] = listMail;
return listMail;
}---------------------------代码结束---------------------------
----------------------需要解决的问题-------------------------1.我要将服务器上的邮件插入到数据库中,现要获取邮件的唯一标识符来判断此邮件是否插入过
2.jmail4.4如何获取邮件的发送时间
maillist.Sendtime =mailMessage.Date; //这个时间是定时发送的时间
这行代码只能获取定时发送时间在线等待高人指点
private NetworkStream ns;ns获取邮件内容StreamReader sr = new StreamReader(ns);
//置入arrayList
ArrayList msglines = new ArrayList();string line = sr.ReadLine();do
{
line = sr.ReadLine();
msglines.Add(line);
} while (line != ".");
//获取邮件时间
private string GetMailDate(ArrayList msglines)
{
string[] tokens;
IEnumerator msgenum = msglines.GetEnumerator();
while (msgenum.MoveNext())
{
string line = (string)msgenum.Current;
if (line.ToUpper().StartsWith("DATE:"))
{
tokens = line.Split(':');
string _Date = string.Empty;
for (int i = 1; i < tokens.Length; i++)
{
_Date += tokens[i];
}
return _Date;
}
}
return "None";
}