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邮件格式,编码解码方式,和正则表达式,具体实现方法还没完整的,本人也只做了部分,但现在没时间,暂时先和大家说说方法。

    待续……

  • 相关阅读:
    Luogu P1247 取火柴游戏
    Luogu P2148 [SDOI2009]E&D
    Luogu P3305 [SDOI2013]费用流 二分 网络流
    NTT学习笔记
    Luogu P4015 运输问题
    Lucas定理学习笔记(没有ex_lucas)
    Luogu P2613 【模板】有理数取余
    欧拉定理与扩展欧拉定理学习笔记
    BSGS与exBSGS学习笔记
    Luogu P3868 [TJOI2009]猜数字
  • 原文地址:https://www.cnblogs.com/ViviChan/p/4981718.html
Copyright © 2011-2022 走看看