Danh mục

Gửi email với SMTP

Số trang: 23      Loại file: pdf      Dung lượng: 695.58 KB      Lượt xem: 10      Lượt tải: 0    
tailieu_vip

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Mỗi lần học được điều mới sẽ cố gắng chia sẻ mọi người ^^ Hồi lâu nghiên cứu về cái SMTP cuối cùng cũng ngộ ra được 1 số thứ Giới thiệu qua chút về SMTP: SMTP là một giao thức dùng nền văn bản và tương đối đơn giản. Trước khi một thông điệp đư ợc gửi, người ta có thể định vị một hoặc nhiều địa chỉ nhận cho thông điệp những địa chỉ này thường được kiểm tra về sự tồn tại trung thực của chúng) ....
Nội dung trích xuất từ tài liệu:
Gửi email với SMTPMỗi lần học được điều mới sẽ cố gắng chia sẻ mọi người ^^Hồi lâu nghiên cứu về cái SMTP cuối cùng cũng ngộ ra được 1 số thứGiới thiệu qua chút về SMTP:SMTP là một giao thức dùng nền văn bản và tương đối đơn giản. Trước khi một thông điệp được gửi, người ta có thể định vị một hoặc nhiều địa chỉ nhận cho thông điệp - những địa chỉ này thường được kiểm tra về sự tồn tại trung thực của chúng) . Việc kiểm thử một trình chủ SMTP là một việc tương đối dễ dàng, dùng chương trình ứng dụng telnet(xem dưới đây). SMTP dùng cổng 25 của giao thức TCP. Để xác định trình chủ SMTP của một tên miền nào đấy (domain name), người ta dùng một mẫu tin MX (Mail eXchange - Trao đổi thư) của DNS (Domain Name System - Hệ thống tên miền).Các bạn nên đọc thêm tư liệu về SMTPCode:http://tools.ietf.org/html/rfc1123http://vi.wikipedia.org/wiki/SMTPMột ví dụ truy nhập trực tiếp vào mail server bằng telnet qua port 25:Code:S: 220 www.example.com ESMTP PostfixC: HELO mydomain.comS: 250 Hello mydomain.comC: MAIL FROM:S: 250 OkC: RCPT TO:S: 250 OkC: DATAS: 354 End data with .C: Subject: test messageC: From: sender@mydomain.comC: To: friend@example.comC:C: Hello,C: This is a test.C: Goodbye.C: .S: 250 Ok: queued as 12345C: QUITS: 221 ByeTrích từ wikipedia Tiếng Việt: http://vi.wikipedia.org/wiki/SMTPMình có làm một cái video bên HCE về cái nàyBiên tập: thienthanit@yahoo.com Nguồn: Xcross87Code:http://hcegroup.net/hceteam/showthread.php?t=2497OK ! Xem thử mô hình nhaBiên tập: thienthanit@yahoo.com Nguồn: Xcross87Mô hình và cách thức như vậy ^^.Giờ ta tạo Class MySMTP để xử lý quy trình:Những thứ cần khởi tạo là gì? Dựa trên cái mô hình ở trên ta có những thứ sau private string Server; private string SenderName; private string SenderAddress; private string RCPName; private string RCPAddress; private string Subject; private string Body; private int TimeOut; private int Port; TcpClient SMTPTCPClient; NetworkStream SMTPNetworkStream; StreamReader SMTPStreamReader; StreamWriter SMTPStreamWriter; DateTime TimeOutCheck;Chú ý:+ Để tạo một connection ta cần sử dụng: TcpClient+ Để tạo một stream cho Network sử dụng NetworkStream+ Xử lý NetworkStream qua 2 cái Base trước đó: StreamReader và StreamWriter.+ DateTime: để quản lý connection , trường hợp bị TimeOut+ Có các thành phần rồi giờ đơn giản thì ta tạo các Properties trước đi /* * PROPERTIES */ // Property: Server public string SMTPServer { get { return Server; } set { Server = value; } } // Property: SenderName public string SMTPSenderName { get { return SenderName; } set { SenderName = value; } } // Property: SenderAddress public string SMTPSenderAddress { get { return SenderAddress; } set { SenderAddress = value; } } // Property: RCPName public string SMTPRCPName { get { return RCPName; }Biên tập: thienthanit@yahoo.com Nguồn: Xcross87 set { RCPName = value; } } // Property: RCPAddress public string SMTPRCPAddress { get { return RCPAddress; } set { RCPAddress = value; } } // Property: Subject public string SMTPSubject { get { return Subject; } set { Subject = value; } } // Property: Body public string SMTPBody { get { return Body; } set { Body = value; } } // Property: TimeOut public int SMTPTimeOut { get { return TimeOut; } set { TimeOut = value; } } // Property: Port public int SMTPPort { get { return Port; } set { Port = value; } }+ Với xử lý việc gửi mail thì có thể chỉ cần sử dụng 1 phương thức:a. Gửi Email đi : OnSendEmail() là đủNhưng khi send Email ta cần kiểm tra connection time out vì thế phải xác nhận response từ server thì mớicó thể request và biết nên đóng connection cho hợp lý. Vì vậy thêm 1 phương thức nữa xử lý TimeOutb. Xử lý Connection TimeOut: WaitForResponse()+ Xử lý gửi thông điệp đi thực sự rất đơn giản và không phức tạp.Dựa vào mô hình ở trên ta thấy vòng lặp quá trình xử lý được làm như sau:1. Khởi tạo kết nối, thất bại thì đóng2. Khởi tạo thành công, thu nhận thông điệp vào các stream3. Chào server, code = 220; đóng nếu thật bại4. Xử lý sender address: đóng nếu thất bại . code =2505. Xử lý người nhận : đóng nếu thất ...

Tài liệu được xem nhiều: