用jmail控件接收所有已收邮件,并用datagrid显示所有,点击某个邮件标题,显示其详细内容与附件。能用就截贴

解决方案 »

  1.   

    并用datagrid显示所有,点击某个邮件标题,显示其详细内容与附件
    如果是将内容放在数据库是很方便的啊!
    就是传递值的问题
      

  2.   

    我想的方法是读出全部邮件的title,body......将它们title+=title,再将得到的title.....用splict分开,建立新表,
    这样实现可行吗?是否有更好的办法.
      

  3.   

    你先要熟悉JMail的读取邮件的方法,将封装成一个辅助类,
    然后构造相关的DataGrid的点击事件,传递相关邮件参数,调用辅助类去下载邮件
    这个是比较清晰的思路~
      

  4.   

    /// <summary>
    /// 获得mail列表
    /// </summary>
    /// <param name="Username">用户帐户名</param>
    /// <param name="Password">口令</param>
    /// <param name="Server">接收服务器(POP3)</param>
    /// <param name="Port">端口号</param>
    /// <returns></returns>
    private bool ReceiveMails(string Username, string Password, string Server, int Port)
    {
    DataTable t = new DataTable();
    t.Columns.Add("MessageID");
    t.Columns.Add("IsNew");
    t.Columns.Add("Priority");
    t.Columns.Add("Title");
    t.Columns.Add("Sender");
    t.Columns.Add("SenderDate");
    t.Columns.Add("Size");
    t.Columns.Add("Attach"); int unReadMail; //新邮件的数目 POP3Class p3 = new POP3Class(); try
    {
    p3.Connect(Username,Password,Server,Port);
    }
    catch
    {
    return false;
    } unReadMail = p3.Count - p3.GetLastUnreadMessage();
    this.MailCountLabel.Text = "您共有 " + p3.Count.ToString() + " 封邮件 | 其中有 " + unReadMail.ToString() + " 封新邮件"; for( int i = 1 ; i <= p3.Count ; i++ )
    {
    DataRow r = t.NewRow();
    r[0] = i; if(unReadMail > 0)
    {
    r[1] = "新";
    unReadMail--;
    }
    else
    {
    r[1] = "";
    } if(p3.Messages[i].Priority == 1)
    {
    r[2] = "高";
    unReadMail--;
    }
    else if(p3.Messages[i].Priority == 5)
    {
    r[2] = "低";
    }
    else
    {
    r[2] = "";
    }
    // r[2] = p3.Messages[i].Priority.ToString();
    r[3] = p3.Messages[i].Subject;
    r[4] = p3.Messages[i].FromName;
    r[5] = p3.Messages[i].Date.ToString("yyyy年MM月dd日 HH:mm:ss");
    r[6] = p3.Messages[i].Size.ToString(); if(p3.Messages[i].Attachments.Count > 0)
    {
    r[7] = "有";
    }
    else
    {
    r[7] = "";
    } t.Rows.Add(r);
    }
    p3.Disconnect(); this.MailDataGrid.DataSource = t;
    this.MailDataGrid.DataBind(); return true;
    }
      

  5.   

    程序运行到
    try
    {
    p3.Connect(Username,Password,Server,Port);
    }
    就过不去了,你可以正常运行吗?
      

  6.   

    报什么错?你是用的转换过的Jmail吗
      

  7.   

    不知怎么的,这个问题一直没解决,用connect 连接服务器的时候总是提示 Connection refused(连接被拒绝)的错误,不知怎么解决,看样子recca17(可乐加冰)好象是成功运行过,能讲讲是怎么回事吗?