任何人都可以請幫助我使用UDP創建一個簡單的基本電子郵件客戶端和電子郵件服務器,並熟悉SMTP的工作方式?使用UDP的電子郵件客戶端/服務器
我剛剛開始使用計算機網絡,我只需要知道所涉及的步驟。
謝謝。
任何人都可以請幫助我使用UDP創建一個簡單的基本電子郵件客戶端和電子郵件服務器,並熟悉SMTP的工作方式?使用UDP的電子郵件客戶端/服務器
我剛剛開始使用計算機網絡,我只需要知道所涉及的步驟。
謝謝。
Internet RFC(請求註解)是此類信息的最佳來源:SMTP概述於RFC 821。好消息是SMTP是一種基於文本的協議,就像HTTP和朋友一樣。
這裏的客戶C
和服務器之間S
爲例對話(來源於維基百科):
S: 220 smtp.example.com ESMTP Postfix
C: HELO relay.example.org
S: 250 Hello relay.example.org, I am glad to meet you
C: MAIL FROM:<[email protected]>
S: 250 Ok
C: RCPT TO:<[email protected]>
S: 250 Ok
C: RCPT TO:<[email protected]>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: "Bob Example" <[email protected]>
C: To: "Alice Example" <[email protected]>
C: Cc: [email protected]
C: Date: Tue, 15 January 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 header fields and 4 lines in the message body.
C: Your friend,
C: Bob
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
{The server closes the connection}
使用UDP電子郵件不會是個好主意,因爲UDP數據包可以被丟棄。 TCP會更好用。但既然你提到這是一個任務,我想沒關係。
所以首先寫你的通用UDP客戶端/服務器代碼。然後修改它以支持SMTP命令。
我首先實現簡單的echo
協議。或者只需在echo
協議中以您最喜歡的語言在線搜索一些源代碼。例如,如果您想使用C++和boost.asio進行聯網,則對於UDP echo
客戶端和服務器,它的demo code。對於Perl,有一些簡單的UDP代碼here。
然後瀏覽你需要的RFC 821的部分,然後從那裏開始。我猜是因爲這是一項任務,你可能不需要協議中的所有內容。
由於協議只是簡單的文本命令和響應,解析它應該不成問題。
非常感謝您的幫助。 – AbdullahTariq
這正是需要實施的內容。再次感謝! – AbdullahTariq
這個問題太廣泛而且不清楚。我可以迴應的唯一有用的事情是電子郵件使用的SMTP協議不是UDP,而是基於TCP。 –
相關:http://stackoverflow.com/questions/3765738/writing-a-simple-email-server。另外,使用UDP來發送電子郵件將是不明智的,因爲UDP數據包可以被丟棄。 – QuasarDonkey
這是一個編程任務。被告知只使用UDP。 – AbdullahTariq