C#程序接收邮件 内容为乱码 求指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#程序接收邮件 内容为乱码 求指教相关的知识,希望对你有一定的参考价值。

private void Retrieve_Click(object sender, EventArgs e)

//将光标置为等待状态

Cursor cr = Cursor.Current;

Cursor.Current = Cursors.WaitCursor;

string szTemp;

Message.Clear();

try


//根据邮件编号从服务器获得相应邮件

Data = "RETR " + MailNum.Text + CRLF;

szData = System.Text.Encoding.UTF8.GetBytes(Data.ToCharArray());

NetStrm.Write(szData, 0, szData.Length);

szTemp = RdStrm.ReadLine();

if (szTemp[0] != '-')


//不断地读取邮件内容,只到结束标志:英文句号

while (szTemp != ".")


Message.Text += szTemp;

szTemp = RdStrm.ReadLine();



//若BackupChBox未选中,则收取邮件后,删除保留在服务器上的邮件

if (BackupChBox.Checked == false)


Data = "DELE" + MailNum.Text + CRLF;

szData = System.Text.Encoding.Default.GetBytes(Data.ToCharArray());

NetStrm.Write(szData, 0, szData.Length);

Status.Items.Add(RdStrm.ReadLine());





else


Status.Items.Add(szTemp);



//将光标置回原来的状态

Cursor.Current = cr;



catch (InvalidOperationException err)


Status.Items.Add("Error: " + err.ToString());



szData = System.Text.Encoding.UTF8.GetBytes(Data.ToCharArray()); 改为System.Text.Encoding.Default.....追问

试过了 不行 算有的编码都试过 不过发现我的里面没有gb2312编码 但是邮件的编码号线是在变的 有时是gb2312 有时是gb18030 搞不懂、、、、

追答

那就用System.Text.Encoding.GetEncoding("GB18030")
gb18030向下兼容gbk,gb2312

参考技术A 可以试试把邮件给改改编码

解决ZABBIX自定义邮件报警内容乱码问题

ZABBIX报警内容:邮件标题正常,内容为乱码;微信报警正常。

曾试图改变环境变量:export LANG=zh_CN.UTF-8 依旧为乱码

原因:export只改变的环境变量 而ZABBIX报警内容为传参,因此需要转码。

#!/bin/bash

To=$1

Title=$2

Notice=$3

echo "${Notice}" | /usr/bin/iconv -t GB2312 -f UTF-8 | /bin/mailx -s "${Title}"  ${To}



完美解决问题

本文出自 “工作经验” 博客,请务必保留此出处http://chlipeng.blog.51cto.com/8928892/1774310

以上是关于C#程序接收邮件 内容为乱码 求指教的主要内容,如果未能解决你的问题,请参考以下文章

jmail4.4pro接收邮件,标题出现乱码,内容却正常显示(标题和内容都是utf8编码)

当wireshark抓取到带有附件为乱码的邮件,为看到完整邮件内容

邮件内容经常出现乱码,用编码去转换也不行,如何解决?

乱码邮件,求高手翻译转码

java读取邮件时报错,不知道什么原因,求指教,我用户名和密码都是正确的,在网站能登录看邮件

解决ZABBIX自定义邮件报警内容乱码问题