标签:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net.Mail; using System.Net.Sockets; using System.Security.Cryptography; using System.Text; using System.Threading; using System.Windows.Forms; namespace SMTP测试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } bool b = false; private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 5; i++) { Thread th = new Thread(new ThreadStart(delegate { Console.WriteLine(CheckSmtp("smtp.126.com", 25, "user", "pswd")); })); th.IsBackground = true; th.Start(); } } 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); } } }
标签:
原文地址:http://www.cnblogs.com/milest/p/4946936.html