POP3 邮件接收 出现乱码了,希望哪位能帮忙看下啥问题!帮我改下,谢谢
2010-05-27 10:14
435 查看
![](http://hi.csdn.net/attachment/201005/27/0_1274926363AcUC.gif)
![](http://hi.csdn.net/attachment/201005/27/0_1274926374CeeR.gif)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
using MailReceiver;
namespace MailReceiver
{
public partial class Form1 : Form
{
public TcpClient Server;
public NetworkStream NetStrm;
public StreamReader RdStrm;
public string Data;
public byte[] szData;
public string CRLF = "/r/n";
public Form1()
{
InitializeComponent();
}
private void Connect_Click(object sender, EventArgs e)
{
//将光标置为等待状态
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//用110端口新建POP3服务器连接
Server = new TcpClient(PopServer.Text, 110);
Status.Items.Clear();
try
{
//初始化
NetStrm = Server.GetStream();
RdStrm = new StreamReader(Server.GetStream(), System.Text.Encoding.ASCII);
Status.Items.Add(RdStrm.ReadLine());
//登录服务器过程
Data = "USER " + Username.Text + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
Status.Items.Add(RdStrm.ReadLine());
Data = "PASS " + Password.Text + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
Status.Items.Add(RdStrm.ReadLine());
//向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小
Data = "STAT" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
Status.Items.Add(RdStrm.ReadLine());
//改变按钮的状态
Connect.Enabled = false;
Disconnect.Enabled = true;
Retrieve.Enabled = true;
//将光标置回原来的状态
Cursor.Current = cr;
}
catch (InvalidOperationException err)
{
Status.Items.Add("Error: " + err.ToString());
}
}
private void Disconnect_Click(object sender, System.EventArgs e)
{
//将光标置为等待状态
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//向服务器发送QUIT命令从而结束和POP3服务器的会话
Data = "QUIT" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
Status.Items.Add(RdStrm.ReadLine());
//断开连接
NetStrm.Close();
RdStrm.Close();
//改变按钮的状态
Connect.Enabled = true;
Disconnect.Enabled = false;
Retrieve.Enabled = false;
//将光标置回原来的状态
Cursor.Current = cr;
}
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.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
szTemp = RdStrm.ReadLine();
if (szTemp[0] != '-')
{
//不断地读取邮件内容,只到结束标志:英文句号
while (szTemp != ".")
{
// byte[] outputb = Convert.FromBase64String(szTemp.Replace("+","%2B"));
//string orgStr = Encoding.Default.GetString(outputb);
//Message.Text = orgStr;
Message.Text +=szTemp;
szTemp = RdStrm.ReadLine();
}
//若BackupChBox未选中,则收取邮件后,删除保留在服务器上的邮件
if (BackupChBox.Checked == false)
{
Data = "DELE" + MailNum.Text + CRLF;
szData = System.Text.Encoding.ASCII.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());
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
相关文章推荐
- .Net Pop3接收邮件(修正LumiSoft.Net.Pop3的邮件头乱码问题)
- javamail接收邮件pop3(接收邮件乱码问题)
- c#接收中文出现乱码问题解决方法2
- 使用 Indy 的 TIdSMTP, TIdPOP3收发邮件在验证账户的时候出现错误乱码解决方法
- UDP中文接收出现乱码问题结局
- indy10 idpop3接收邮件标题乱码
- System.Net.Mail发邮件标题过长出现乱码问题
- 后台接收get请求参数出现中文乱码问题
- java处理接收inputstream中传来的中文字,出现某个字乱码问题
- Foxmail接收邮件时,报出"网络操作失败","POP3:****"问题的解决办法
- 困扰已久的乱码问题终于得到解决,希望下次出现更多问题,解决问题的过程很愉快!!!!!
- Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决
- 创建oracle数据库时出现oracle快捷方式应用的项目无法访问,你可能没有适当的权限!帮忙解决什么问题啊!谢谢!
- openerp 7.0邮件接收中文附件乱码问题解决办法
- 彻底解决delphi Indy10接收邮件汉字显示乱码的问题
- 关于OpenSmtp邮件标题过长,附件名,用户名出现乱码问题的终及解决Dll文件
- 解决jquery ajax接收后台返回值出现中文乱码问题
- 做课程设计遇到的问题,希望大家帮忙解决,谢谢!
- 彻底解决delphi Indy10接收邮件汉字显示乱码的问题
- action接收到来自jsp页面的请求时出现中文乱码问题处理方法