怎么用电脑管家一键修复同步文档到手机上面?

福步外贸论坛(FOB Business Forum) |中国第一外贸论坛
对不起,您的 IP 地址不在被允许的范围内,,截图拷贝相关IP后发送邮件给
当前时区 GMT+8, 现在时间是
Powered by D1scuz! && 2001-.NET接收邮件,该怎么解决 - ASP.NET当前位置:& &&&.NET接收邮件,该怎么解决.NET接收邮件,该怎么解决&&网友分享于:&&浏览:446次.NET接收邮件.NET利用自带的命名空间接收邮件,也就是利用System.Net.SSystem.NSystem.IO;等命名空间实现Pop3邮件接收功能,有知道的请附上详细源码。谢谢!------解决方案--------------------C# code
c#接收电子邮件类
using System.Net.S
using System.N
using System.Security.C
using System.IO;
/////////////////////////////////////////////
// 类名:Pop3
// 功能:接收电子邮件
/////////////////////////////////////////////
namespace ZTSX.Email
/// &summary&
/// Pop3 的摘要说明。
/// &/summary&
public class Pop3
private string mstrHost
//主机名称或IP地址
private int mintPort
//主机的端口号(默认为110)
private TcpClient mtcpClient
private NetworkStream mnetStream
//网络基础数据流
private StreamReader m_stmReader
//读取字节流
private string mstrStatMessage
//执行STAT命令后得到的消息(从中得到邮件数)
/// &summary&
/// 构造函数
/// &/summary&
/// &remarks&一个邮件接收对象&/remarks&
public Pop3()
/// &summary&
/// 构造函数
/// &/summary&
/// &param name=&host&&主机名称或IP地址&/param&
public Pop3(string host)
mstrHost =
/// &summary&
/// 构造函数
/// &/summary&
/// &param name=&host&&主机名称或IP地址&/param&
/// &param name=&port&&主机的端口号&/param&
/// &remarks&一个邮件接收对象&/remarks&
public Pop3(string host,int port)
mstrHost =
mintPort =
#region 属性
/// &summary&
/// 主机名称或IP地址
/// &/summary&
/// &remarks&主机名称或IP地址&/remarks&
public string HostName
get{return mstrH}
set{mstrHost =}
/// &summary&
/// 主机的端口号
/// &/summary&
/// &remarks&主机的端口号&/remarks&
public int Port
get{return mintP}
set{mintPort =}
#endregion
#region 私有方法
/// &summary&
/// 向网络访问的基础数据流中写数据(发送命令码)
/// &/summary&
/// &param name=&netStream&&可以用于网络访问的基础数据流&/param&
/// &param name=&command&&命令行&/param&
/// &remarks&向网络访问的基础数据流中写数据(发送命令码)&/remarks&
private void WriteToNetStream(ref NetworkStream netStream,String command)
string strToSend = command + &\r\n&;
byte[] arrayToSend = System.Text.Encoding.ASCII.GetBytes(strToSend.ToCharArray());
netStream.Write(arrayToSend,0,arrayToSend.Length);
/// &summary&
/// 检查命令行结果是否正确
/// &/summary&
/// &param name=&message&&命令行的执行结果&/param&
/// &param name=&check&&正确标志&/param&
/// &returns&
/// 类型:布尔
/// 内容:true表示没有错误,false为有错误
/// &/returns&
/// &remarks&检查命令行结果是否有错误&/remarks&
private bool CheckCorrect(string message,string check)
if(message.IndexOf(check) == -1)
/// &summary&
/// 邮箱中的未读邮件数
/// &/summary&
/// &param name=&message&&执行完LIST命令后的结果&/param&
/// &returns&
/// 类型:整型
/// 内容:邮箱中的未读邮件数
/// &/returns&
/// &remarks&邮箱中的未读邮件数&/remarks&
private int GetMailNumber(string message)
string[] strMessage = message.Split(' ');
return Int32.Parse(strMessage[1]);
/// &summary&
/// 得到经过解码后的邮件的内容
/// &/summary&
/// &param name=&encodingContent&&解码前的邮件的内容&/param&
/// &returns&
/// 类型:字符串
/// 内容:解码后的邮件的内容
/// &/returns&
/// &remarks&得到解码后的邮件的内容&/remarks&
private string GetDecodeMailContent(string encodingContent)
string strContent = encodingContent.Trim();
string strEncode =
int iStart = strContent.IndexOf(&Base64&);
if(iStart == -1)
throw new Pop3Exception(&邮件内容不是Base64编码,请检查&);
strEncode = strContent.Substring(iStart + 6,strContent.Length - iStart - 6);
return SX.Encode.TransformToString(strEncode);
catch(SX.EncodeException exc)
throw new Pop3Exception(exc.Message);
#endregion
/// &summary&
/// 与主机建立连接
/// &/summary&
/// &returns&
/// 类型:布尔
/// 内容:连接结果(true为连接成功,false为连接失败)
/// &/returns&
/// &remarks&与主机建立连接&/remarks&
public bool Connect()
if(mstrHost == null)
throw new Exception(&请提供SMTP主机名称或IP地址!&);
if(mintPort == 0)
throw new Exception(&请提供SMTP主机的端口号&);
mtcpClient = new TcpClient(mstrHost,mintPort);
mnetStream = mtcpClient.GetStream();
m_stmReader = new StreamReader(mtcpClient.GetStream());
string strMessage = m_stmReader.ReadLine();
if(CheckCorrect(strMessage,&+OK&) == true)
catch(SocketException exc)
throw new Pop3Exception(exc.ToString());
catch(NullReferenceException exc)
throw new Pop3Exception(exc.ToString());
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有.NET接收邮件,该怎么解决(2) - ASP.NET当前位置:& &&&.NET接收邮件,该怎么解决.NET接收邮件,该怎么解决(2)&&网友分享于:&&浏览:446次------解决方案--------------------
#region Pop3命令
/// &summary&
/// 执行Pop3命令,并检查执行的结果
/// &/summary&
/// &param name=&command&&Pop3命令行&/param&
/// &returns&
/// 类型:字符串
/// 内容:Pop3命令的执行结果
/// &/returns&
private string ExecuteCommand(string command)
string strMessage =
//执行Pop3命令后返回的消息
//发送命令
WriteToNetStream(ref mnetStream,command);
//读取多行
if(command.Substring(0,4).Equals(&LIST&) || command.Substring(0,4).Equals(&RETR&) || command.Substring(0,4).Equals(&UIDL&)) //记录STAT后的消息(其中包含邮件数)
strMessage = ReadMultiLine();
if(command.Equals(&LIST&)) //记录LIST后的消息(其中包含邮件数)
mstrStatMessage = strM
//读取单行
strMessage = m_stmReader.ReadLine();
//判断执行结果是否正确
if(CheckCorrect(strMessage,&+OK&))
return strM
return &Error&;
catch(IOException exc)
throw new Pop3Exception(exc.ToString());
/// &summary&
/// 在Pop3命令中,LIST、RETR和UIDL命令的结果要返回多行,以点号(.)结尾,
/// 所以如果想得到正确的结果,必须读取多行
/// &/summary&
/// &returns&
/// 类型:字符串
/// 内容:执行Pop3命令后的结果
/// &/returns&
private string ReadMultiLine()
string strMessage = m_stmReader.ReadLine();
string strTemp =
while(strMessage != &.&)
strTemp = strTemp + strM
strMessage = m_stmReader.ReadLine();
return strT
//USER命令
private string USER(string user)
return ExecuteCommand(&USER & + user) + &\r\n&;
//PASS命令
private string PASS(string password)
return ExecuteCommand(&PASS & + password) + &\r\n&;
//LIST命令
private string LIST()
return ExecuteCommand(&LIST&) + &\r\n&;
//UIDL命令
private string UIDL()
return ExecuteCommand(&UIDL&) + &\r\n&;
//NOOP命令
private string NOOP()
return ExecuteCommand(&NOOP&) + &\r\n&;
//STAT命令
private string STAT()
return ExecuteCommand(&STAT&) + &\r\n&;
//RETR命令
private string RETR(int number)
return ExecuteCommand(&RETR & + number.ToString()) + &\r\n&;
//DELE命令
private string DELE(int number)
return ExecuteCommand(&DELE & + number.ToString()) + &\r\n&;
//QUIT命令
private void Quit()
WriteToNetStream(ref mnetStream,&QUIT&);
/// &summary&
/// 收取邮件
/// &/summary&
/// &param name=&user&&用户名&/param&
/// &param name=&password&&口令&/param&
/// &returns&
/// 类型:字符串数组
/// 内容:解码前的邮件内容
/// &/returns&
private string[] ReceiveMail(string user,string password)
int iMailNumber = 0;
if(USER(user).Equals(&Error&))
throw new Pop3Exception(&用户名不正确!&);
if(PASS(password).Equals(&Error&))
throw new Pop3Exception(&用户口令不正确!&);
if(STAT().Equals(&Error&))
throw new Pop3Exception(&准备接收邮件时发生错误!&);
if(LIST().Equals(&Error&))
throw new Pop3Exception(&得到邮件列表时发生错误!&);
iMailNumber = GetMailNumber(mstrStatMessage);
//没有新邮件
if(iMailNumber == 0)
string[] strMailContent = new string[iMailNumber];
for(int i = 1 ; i &= iMailN i++)
//读取邮件内容
strMailContent[i - 1] = GetDecodeMailContent(RETR(i));
return strMailC
catch(Pop3Exception exc)
throw new Pop3Exception(exc.ToString());
#endregion
/// &summary&
/// 收取邮件
/// &/summary&
/// &param name=&user&&用户名&/param&
/// &param name=&password&&口令&/param&
/// &returns&
/// 类型:字符串数组
/// 内容:解码前的邮件内容
/// &/returns&
///&remarks&收取邮箱中的未读邮件&/remarks&
public string[] Receive(string user,string password)
return ReceiveMail(user,password);
catch(Pop3Exception exc)
throw new Pop3Exception(exc.ToString());
/// &summary&
/// 断开所有与服务器的会话
/// &/summary&
/// &remarks&断开所有与服务器的会话&/remarks&
public void DisConnect()
if(m_stmReader != null)
m_stmReader.Close();
if(mnetStream != null)
mnetStream.Close();
if(mtcpClient != null)
mtcpClient.Close();
catch(SocketException exc)
throw new Pop3Exception(exc.ToString());
/// &summary&
/// 删除邮件
/// &/summary&
/// &param name=&number&&邮件号&/param&
public void DeleteMail(int number)
//删除邮件
int iMailNumber = number + 1;
if(DELE(iMailNumber).Equals(&Error&))
throw new Pop3Exception(&删除第& + iMailNumber.ToString() + &时出现错误!&);
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有如何查看邮件发送状态?----- 帮助中心
邮箱操作帮助
如何查看邮件发送状态?
传统的电子邮箱,发送邮件后用户无法判断邮件是否已经投递到收件人的邮箱,从而可能导致用户信息不能及时到达。
中资源企业邮箱透明化服务,让您知道每封发出邮件的状态,真正保证您的邮件能够及时地投递到对方邮箱。
查询方法:在“已发邮件”邮件箱中点击任意一封最近31天的本邮箱发送出去的邮件,就可以在邮件阅读页的信头和内容之间看到“发送状态”,点击“查看详情”可看到该邮件的详细发送状况。若“发送失败”您可以查看详细信息,解决后使用“编辑”后再次发送邮件。
详细发送状态共有7种:
1、成功到达对方邮箱
收件人的邮箱是相同后缀域名的邮箱(@后的域名和发件人的相同),这封邮件已成功投递到收件人的邮箱。
2、被对方拒收/退回
这封邮件被对方收件人拒收,可能是对方邮箱设置了某些过滤和反垃圾策略,请与对方确认后再发。
3、成功到达对方服务器
收件人的邮箱是不同后缀域名的邮箱(@后的域名和发件人的不同),这封邮件已投递到对方邮箱所在服务器,且对方服务器已确认接收成功。如果对方未收到,则为对方邮件服务商的问题,请咨询对方邮箱服务提供商。
4、被对方服务器拒收/退回
这封邮件被对方服务器拒收,可能是收件人地址错误或不存在,请与对方确认后再发。
这封邮件正在发送中,等待系统投递。
6、发送不成功
这封邮件已被退信。您可以查看退信内容确定退信原因,修正后再次发送。
7、未知操作
这种情况的发生概率在0.01%以下。您可以再次发送这封邮件以确保其到达。产生此问题的原因是网络等问题,导致投递动作的信息记录丢失或者对方服务器一直未能正确给出确认信息。
在自助查询中您还可以使用更加强大的“收发邮件查询功能”查看详情。

我要回帖

更多关于 用电脑管家一键修复 的文章

 

随机推荐