private void WriteStream(string strCmd)
{
strCmd+=CRLF;
byte[] bw=System.Text.Encoding.Default.GetBytes(strCmd);
netStrm.Write(bw,0,bw.Length);
}
private string AuthStream(string strCmd)
{
try
{
byte[] by=System.Text.Encoding.Default.GetBytes(strCmd);
strCmd=Convert.ToBase64String(by);
}
catch(Exception err)
{
return err.ToString();
}
return strCmd;
} private void Form1_Load(object sender, System.EventArgs e)
{
               
} private void ButtonSend_Click(object sender, System.EventArgs e)
{
listBox1.Items.Clear();
try
{
string data;
progressBar1.Visible=true;
label1.Visible=true;
progressBar1.Value=0;
smtpSrv=new TcpClient(textBoxSrv.Text,25);
netStrm=smtpSrv.GetStream();
StreamReader rdStrm=new StreamReader(smtpSrv.GetStream()); WriteStream("EHLO local");
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++;
WriteStream("AUTH LOGIN");
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; data=textBoxUser.Text;
data=AuthStream(data);
WriteStream(data);
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; data=textBoxPwd.Text;
data=AuthStream(data);
WriteStream(data);
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; data="MAIL FROM:<"+textBoxSend.Text+">";
WriteStream(data);
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; data="RCPT TO:<"+textBoxRev.Text+">";
WriteStream(data);
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; WriteStream("DATA");
listBox1.Items.Add(rdStrm.ReadLine());
progressBar1.Value++; data="Date:"+DateTime.Now;
WriteStream(data);
progressBar1.Value++; data="TO:"+textBoxRev.Text;
WriteStream(data);
progressBar1.Value++; data="SUBJECT:"+textBoxSubject.Text;
WriteStream(data);
progressBar1.Value++; data="Reply-TO:"+textBoxSend.Text;
WriteStream(data);
progressBar1.Value++; WriteStream("");
progressBar1.Value++;

WriteStream(".");
progressBar1.Value++;
listBox1.Items.Add(rdStrm.ReadLine()); WriteStream("QUIT");
progressBar1.Value++;
listBox1.Items.Add(rdStrm.ReadLine());
netStrm.Close();
progressBar1.Visible=false;
label1.Visible=false;
MessageBox.Show("邮件发送成功","成功");
}
catch(Exception ex) {
MessageBox.Show(ex.ToString(),"操作错误!");
}
}
}
}