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());
试过了 不行 算有的编码都试过 不过发现我的里面没有gb2312编码 但是邮件的编码号线是在变的 有时是gb2312 有时是gb18030 搞不懂、、、、
追答那就用System.Text.Encoding.GetEncoding("GB18030")
gb18030向下兼容gbk,gb2312
解决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抓取到带有附件为乱码的邮件,为看到完整邮件内容