当前位置:编程学习 > C#/ASP.NET >>

有关Jmail组件收邮件出现主题乱码和内容部分字变成“?”,求解

 jpop = new jmail.POP3Class();//实例化
            //打开POP3服务器的连接
            jpop.Connect(Email, Password, Server, Port);
            if (jpop.Count > 0)//有邮件
            {
                for (int i = 1; i <= jpop.Count; i++)
                {
                    lbltoAccessState.Text = "正在导入邮件!";
                    lbltoAccessState.ForeColor = Color.Green;

                    jme = jpop.DownloadSingleMessage(i);
                    //获取附件集合
                    atts = jme.Attachments;
                    //获取第一个附件
                    att = atts[0];
                    //邮件格式设置
                    jme.Charset = "UTF-8";//文本编码
                    //jme.Silent = true;
                    //
                    //jme.EnableCharsetTranslation = true;
                    //jme.ContentTransferEncoding = "Base64";
                    jme.Encoding = "Base64"; //设置附件默认编码

                    jme.ISOEncodeHeaders = false;  //邮件头是否使用iso-8859-1编码 默认值为true

                    //jme.ContentType = "text/plain";
                    sql = "insert into EmailContent (邮件主题,发件人,邮件内容,发送日期,附件)" + "values ('" + jme.Subject + "','" + jme.From + "','" + jme.Body +"','" + jme.Date + "','" + att.Name + "')";

这是收邮件的部分代码

Subject:鍏昏渹鏃ュ織(原本是“养蜂日志”)

Body:<bee><famerinfo><farmer><name>王小?/name></farmer></famerinfo><beediary><content><a0>常规检?</a0><a1>稻草保温2</a1><a2>调整蜜脾4</a2><a3>5;19蜂蜜;||5;38.5</a3><a29>枣花6.6常温塑料容器</a29></content></beediary><beeproductbuy></beeproductbuy></bee>
(原本是:<bee><famerinfo><farmer><name>王小钧</name></farmer></famerinfo><beediary><content><a0>常规检查3</a0><a1>稻草保温2</a1><a2>调整蜜脾4</a2><a3>5;19蜂蜜;||5;38.5</a3><a29>枣花6.6常温塑料容器</a29></content></beediary><beeproductbuy></beeproductbuy></bee>)

 

前提:1、这个邮件是从163邮箱里POP3下来的,

         2、这个邮件是安卓手机端发到163邮箱的

         3、也就是我这边要得到手机终端的发来的邮件

         4、用的是Jmail 4.4 pro

问题:1、按照安卓手机端->163邮箱->jmail接受,看其字符串文本,或者网页显示,出现乱码现象

        2、相同内容邮件,按照126邮箱->163邮箱->jmai接受,不出现上述问题。

这是什么原因,比较费解,编码问题么,请各位大虾帮忙,谢谢!

--------------------编程问答-------------------- //文本编码 
改成:jme.Charset = "gb2312";
试试 --------------------编程问答-------------------- 试试过了,改成gb2312不行的,谢谢 --------------------编程问答-------------------- 你的问题不知道 解决了么?
我在内容显示上也是出现了类似的问题!

--------------------编程问答-------------------- try
                    {
                        string str = mailMessage.Headers.GetHeader("Subject");
                        string[] strss = str.Split('?');

                        if (strss[1].Contains("utf-8"))
                        {
                            byte[] bytystr = Convert.FromBase64String(strss[3]);
                            string strlast = Encoding.UTF8.GetString(bytystr);
                            email.Theme = strlast;
                        }
                        else 
                        {
                            email.Theme = mailMessage.Subject;
                        }
                        
                    }
                    catch
                    {
                        email.Theme = "无主题";
                    }

补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,