cnqylong 2016-04-09 13:08 采纳率: 0%
浏览 2034
已结题

Jmail4.4实现邮件接受,发现“邮件附件较大时(如40兆),接收邮件非常慢,求解决方法

    public static jmail.POP3Class popMail;      //实例化POP3类对象
    public static jmail.Message mailMessage;    //实例化邮件对象
    public static jmail.Attachments atts;       //实例化邮件的附件集合
    public static jmail.Attachment att;         //实例化附件对象
    public static string strserver;             //存储邮件服务器
    public static string user;                  //存储用户登录邮箱的用户名
    public static string pwd;                   //存储用户登录邮箱的密码
            private void frmMain_Load(object sender, EventArgs e)
    {   
                    user = "。。。。。@139.com";
        pwd = "。。。。。";
        strserver = "pop.139.com";
        popMail = new jmail.POP3Class();
                                    if (popMail.Count != 0)
            {
                dgvEmailInfo.RowCount = popMail.Count;
                if (popMail != null)
                {
                    if (popMail.Count > 0)//当邮箱中存在邮件的情况下运行代码
                    {
                        for (int i = 1; i < popMail.Count; i++)
                        {


                            mailMessage = popMail.Messages[i];//**遇到大邮件时主要是这个过程耗时**间

                            //mailMessage.Charset = "GB2312";
                            if (mailMessage.From == user.Trim().ToLower())
                            {
                                dgvEmailInfo.Rows[i - 1].Cells[0].Value = "我";
                            }
                            else
                            {
                                dgvEmailInfo.Rows[i - 1].Cells[0].Value = mailMessage.From;
                            }
                            dgvEmailInfo.Rows[i - 1].Cells[1].Value = Base64Decode(mailMessage.Subject);
                            dgvEmailInfo.Rows[i - 1].Cells[2].Value = Base64Decode(mailMessage.Body);
                            dgvEmailInfo.Rows[i - 1].Cells[4].Value = mailMessage.Date.ToString();
                            if (popMail.Count >= 1 && i <= popMail.Count)
                            {
                                atts = mailMessage.Attachments;
                                if (atts.Count > 0)
                                {
                                    dgvEmailInfo.Rows[i - 1].Cells[3].Value = "附件下载";
                                }
                                else
                                {
                                    dgvEmailInfo.Rows[i - 1].Cells[3].Value = "无附件";
                                }
                            }
                        }
                    }
                }
            }
                             else
            {
                dgvEmailInfo.Rows.Clear();
            }
  • 写回答

1条回答 默认 最新

  • threenewbee 2016-04-09 22:03
    关注

    这个传输的开销是必须的,或者你可以在服务器上解析邮件,只返回所需的数据。

    评论

报告相同问题?

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档