程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 關於SMTP和POP3使用及關於客戶-服務端的自動連線問題

關於SMTP和POP3使用及關於客戶-服務端的自動連線問題

編輯:Delphi
        曾經有一段時間我對郵件發送接收程序特別感興趣,尤其是對於木馬,覺得特別神秘,後來我才發現他們的運行原理。在這篇文章裡,我想特別談一下對於smtp和pop3的一些我的簡單的觀點,如果有不當的地方,還請大家多多指出,因為這還是我第一次在csdn發表文章。

      很多書上都對smtp的使用有過介紹,不過那些都是很淺顯的使用,對於smtp的郵箱驗證功能根本只字不提,但事實恰恰是,很多比較常用的郵箱經常是需要通過驗證的, 像163及sohu等,因為那些服務器為了防止垃圾郵件的泛濫,才不得不這樣做,所以如果我們在使用smtp時,簡單的設置postmessage的FromAddress,Fromname,subject,body等屬性後,就調用sendmail方法的話,只能將郵件發往一些名不見經傳的郵箱,因為那些服務器根本不需要身份驗證,那麼怎麼樣才可以發到像163的那樣的比較常用的郵箱裡呢?有兩中方法,一種是在smtp編碼過程中加入自己的用戶名和密碼(這裡不提供實現代碼,在www.dapha.Net 網站上有源代碼下載,不過是用vb編的,有興趣可以看看)具體過程比較煩瑣,這裡介紹另外一種更簡單的方法,可以在不需要通過身份驗證的服務器申請一個帳號,啟動這個帳號的郵件轉發功能,這樣就能輕易實現我們的目的。

      另外我還想談談木馬自動連線的問題。有些木馬,客戶端在搜尋服務端時,常采用的是窮舉法,即一一列舉所有在線機器,看看其端口有沒有在監聽。這種方法,對於局域網確實挺快,但是如果不在同一局域網裡,這種方法就不那麼管用了,有沒有辦法可以直接確定服務端的位置呢?有,那就是smtp和pop3控件的功能的擴展。我們可以在服務器端添加一個smtp控件,並在代碼中添加獲取本機ip地址的代碼段,獲取之後用smtp控件將ip地址及獲取時間發送至郵箱服務器,並可以設定定時發送,這樣可以確保服務端的郵件不會過時。在客戶端添加一個pop3控件,這樣可以從郵箱服務器取得所需郵件,並從郵件中將ip地址和時間分離出來,根據ip地址便輕而易舉實現自動連接,比搜尋主機要快很多,避免走過彎路,這裡提到木馬,僅用與技術討論,請勿用於非法途徑。

       以上是我個人平時總結出的觀點,希望對大家的編程有所幫助,謝謝!

   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved