zoukankan      html  css  js  c++  java
  • Jmail读取邮件详细内容乱码问题

     Jmail控件的操作很简单,实现收发邮件只需几行代码,但经常会有人遇到收邮件时,部分内容是乱码的问题,比如读取别人转发的邮件时,经过我的测试,所有转发邮件Jmail都未能正常读取。是什么原因呢?见图:

    上图是用CMD命令读到的邮件网络流数据,其中每个像From: ……;  To: ……都是一个域,每个域代表了不同的意义,具体大家可以网上查,挺多资料,这是MIME邮件格式,是现在最普遍的邮件格式。

    不说废话,继续Jmail的问题,为什么Jmail不能正常读取,个人还不是很清楚,不过个人感觉是Jmail读邮件时是按行读取的,而正好,转发的邮件每个域的内容都是换行的,比如Jmail发现了From,那么它就取From冒号后面的内容,然后解码,但并没有取全,自然就解不了码。

    免费的Jmail不会给用户提供太多的功能

    那么怎么解决这个问题呢,大家可以尝试让Jmail读取一个邮件的所有数据:

    jmail.POP3Class popEmail = new POP3Class();
    jmail.Message msg;

    jmail.Attachments atts;

     try
    {
           popEmail.Connect(user, pass, addr, int.Parse(port));       //参数分别是:用户名,密码,邮件服务器地址(我用的是pop.qq.com),端口号(对应pop:110

           string emailText = popEmail.Messages[i].Text                   //这里读到的就是整个邮件的内容(未解码)

    }

    catch(Exception ex)

    {

    }

    finally

    {

            popEmail.Disconnect();

    }

    得到未解码的邮件后就需要大家自己解码,怎么解码呢?大家就需要了解MIME邮件格式,编码解码方式,和正则表达式,具体实现方法还没完整的,本人也只做了部分,但现在没时间,暂时先和大家说说方法。

    待续……

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/ViviChan/p/4981718.html
Copyright © 2011-2022 走看看