Dưới đây là quá trình giao tiếp cơ bản của giao thức SMTP.
Đoạn code do mình chuyển qua C# dựa vào bài viết gửi mail sử dụng dòng lệnh (CMD) http://www.wikihow.com/Send-Email-Using-Telnet
TcpClient client = new TcpClient(); string log = ""; client.Connect("mail.emailserver.vn", 25); StreamReader sr = new StreamReader(client.GetStream()); StreamWriter sw = new StreamWriter(client.GetStream()); log += "Server: " + sr.ReadLine() + "\n"; string data = "HELO";//một vài server yêu cầu phải HELO sender hostname log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; //Khai báo địa chỉ người gửi data = "MAIL FROM: <" + "nguyxxdoxxphoxx.it@gmail.com" + ">"; log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; //Khai báo địa chỉ người nhận data = "RCPT TO: <" + "phong.nd@emailserver.vn" + ">"; log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; //Gửi yêu cầu báo hiệu sẽ gửi nội dung bức thư data = "DATA"; log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; //Khai báo nội dung bức thư data = emailContent + "\r\n" + "."; log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; //Ngắt kết nối với SMTP Server hoặc Email Server data = "QUIT"; log += "Client: " + data + "\n"; sw.WriteLine(data); sw.Flush(); log += "Server: " + sr.ReadLine() + "\n"; sr.Close(); sw.Close(); client.Close();
Không có nhận xét nào :
Đăng nhận xét