C#怎样测试SmtpClient客户端是否成功连接SmtpServer?
来源:互联网 发布:知乎 老婆sm经历 编辑:程序博客网 时间:2024/04/29 08:01
参考 我的博文 留个纪念 尤其是Hash码 - 在.NET中使用SMTP发送邮件
引用chinafcl 并整理
请问SmtpClient中只提供邮箱地址,邮箱密码,和SMTP服务器地址,怎么测试邮箱地址和密码是否正确?(就类似邮件客户端的测试连接功能)
private bool CheckSmtp(string smtpServer, int port,string username,string password)
{
TcpClient tcpClient = new TcpClient(smtpServer, port);
NetworkStream stream = tcpClient.GetStream();
if(!WaiteFor(stream,"220")) return false ;
SendCommand(stream, "HELO 211.152.50.xxx/r/n");
if (!WaiteFor(stream, "250")) return false;
SendCommand(stream, "AUTH LOGIN/r/n");
if (!WaiteFor(stream, "334")) return false;
SendCommand(stream,Base64Encode(username)+ "/r/n");
if (!WaiteFor(stream, "334")) return false;
SendCommand(stream, Base64Encode(password) + "/r/n");
if (!WaiteFor(stream, "235")) return false;
return true;
}
private bool WaiteFor(NetworkStream stream, string strCode)
{
int StreamSize;
byte[] ReadBuffer = new byte[1024];
StreamSize = stream.Read(ReadBuffer, 0, ReadBuffer.Length);
string Returnvalue = Encoding.Default.GetString(ReadBuffer).Substring(0, StreamSize);
Console.WriteLine(Returnvalue);
return Returnvalue.Substring(0, 3).Equals(strCode);
}
private void SendCommand(NetworkStream stream,string strCmd)
{
byte[] WriteBuffer;
WriteBuffer = Encoding.Default.GetBytes(strCmd);
stream.Write(WriteBuffer, 0, WriteBuffer.Length);
}
private string Base64Encode(string str)
{
byte[] barray;
barray = Encoding.Default.GetBytes(str);
return Convert.ToBase64String(barray);
}
- C#怎样测试SmtpClient客户端是否成功连接SmtpServer?
- 测试mysql 是否连接成功
- C#测试数据库连接是否成功
- C#测试数据库连接是否成功
- java 连接mysql 并测试是否成功
- 测试Java连接Oracle是否成功
- 测试sql server连接是否成功
- Centos 测试redis连接是否成功
- junit测试连接mysql是否成功
- java 连接mysql 并测试是否成功
- 测试Hibernate连接数据库是否成功
- C#检测数据库的是否连接成功
- C#验证数据库是否连接成功
- 怎样衡量测试成功
- c# 测试数据库是否连接上
- SQL server2005测试是否连接成功的方法
- java测试网络连接是否成功并设置超时时间
- C#中判断SQL Server数据库是否连接成功
- 有些迷茫
- JFace入门 - 环境搭建 for Eclipse 3.3版
- XML简明语法总结
- 使用Before通知的形式实现
- C#操作xml
- C#怎样测试SmtpClient客户端是否成功连接SmtpServer?
- 图像 二进制文件
- reactos操作系统实现(130)
- 使用管道编程----利用别人的程序,实现自己的功能
- 如何在网上选购羽绒被
- 用memwatch检测内存泄露
- 右下角滑出窗口 sheyMsg
- Microsoft .NET Pet Shop 4 架构与技术分析
- 读取内存の内存遍历器源码