以telnet直接取得郵件內容的實作 |
答題得分者是:yckuo
|
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
你若是要以TELNET 來存取Mail Server
可以參考看看 port : 110 (POP3)
指令
User username
Pass password
stat ---->取得郵件資訊(總數與總大小)
List ---->取得郵件資訊(編號與各郵件大小)
RETR --->取得郵件內容
quit ---->離開 例:
procedure TForm1.Button1Click(Sender: TObject); begin try IdTelnet1.Host := 'mail.abci.com.tw'; IdTelnet1.Port := 110; IdTelnet1.Connect(); IdTelnet1.SendCmd('User david'); IdTelnet1.SendCmd('Pass 1233'); IdTelnet1.SendCmd('retr 1'); Application.ProcessMessages; finally IdTelnet1.Disconnect; end; end; procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: string); begin memo1.text := buffer; end;但是如果你只想單純的取得郵件內容(不要表頭資訊…) 可能要費點功夫自己處理(字串處理,例如以固定的空白區分或是特別的字眼) 因為POP3 的協定,取回郵件內容時,它就已包含了郵件相關資訊 所以…如果Indy 已做了分段這部份的處理,那麼直接取用比較單純 以Telnet 驗證, retr 指令所傳回的是完整的內容(紅色部份) --------------------------------------------------------- +OK mail.abci.com.tw POP3 伺服器就緒,版本: v6.0.7 user david +OK david... 收件者已確認。 pass 1111 +OK david@mail.abci.com.tw 的信箱共有 2 封郵件 (195748 八位元組)。 list +OK 2 195748 1 666 2 195082 . retr 1 ---------------->(取回郵件) +OK 666 八位元組 Return-path:----------------------------------------------------------- 發表人 - ddy 於 2003/03/31 21:31:13 |
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
引言: 但如何將郵件本文中的各各區段(boundary)分別取出,還是沒有特別說明這部份說穿了,就是字串處理 結尾你已知如何取得,那麼觀察本文開頭處有何特別處 X-MDRemoteIP: 127.0.0.1 X-Return-Path: david@excelsi.com.tw X-MDaemon-Deliver-To: david@excelsi.com.tw Test最後一個mail address 之後就是本文了 如果覺得字串處理麻煩,那你不妨看看IdMessage1.Body source code是如何做的 也是一樣的方法 如果是為了了解其原理,不妨一試 實用上…indy IdPOP3 & IdMessage 就蠻好用了 |
yckuo
高階會員 發表:55 回覆:389 積分:238 註冊:2003-03-07 發送簡訊給我 |
您好: ddy 已經說了,不過是 parse 而已..
大致如下 ----=1234\r\n
Content-Type:
Content-Transfer-Encoding:
Content-Disposition: attachment; filename="abc.zip"\r\n\r\n
zzzzzzzzzzzzzzzzzzzzzzzzz\r\n
zzzzzzzzzzzzzzzzzzzzzzzzz\r\n
\r\n
\r\n
----=1234--\r\n 以 ----=1234\r\n 開頭 1234 是唯一代號
以 ----=1234--\r\n 結束
中間的資訊,開頭部份是有關檔名,內文壓縮法等等資訊,讓您要將
body save 成檔案時能先正確的解出再 save. 或您可以找找 imap 來應用. yckuo
------
yckuo |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |