1228甲班上課筆記

資料通訊與網路-課程版面-授課教授:XO

版主: b80203, ghost3401, XO, maa, siegf

分享到: Facebook

1228甲班上課筆記

文章405401334莊凱智 » 週五 12月 28, 2018 9:23 pm

實作 SMTP & POP3
  • 開啟課程資料夾的smtp->DevNullSmtp,按start server,可以看到他是port 25
  • 圖檔
  • 可在cmd輸入netstat -an | grep :25,查看port 25是否有被開起來,上面是還沒start server查詢的,那時候還沒有port 25,開了之後就出現了
  • 圖檔
  • 開啟putty
    • Host Name填本機IP
    • Port 填 25
    • Connection type為Raw
    • Close Window on exit選never,意思是當斷線時不要不見,要關由自己關
    • 圖檔
    • 按Terminal,將Implicit CR in every LF選起來
    • 圖檔
    • 到Window的Appearance可change font格式
    • 圖檔
    • 回到Session,在Saved Sessions填入名稱,並按Save把剛剛做的設定存起來
    • 圖檔
    • 都設定好之後,就可以點選Open
  • 進入127.0.0.1 port 25之後
    • HELO 127.0.0.1
    • MAIL FROM <寄件者mail>
    • RCPT TO <收件者mail>
    • DATA (信件內容在打DATA之後可以開始輸入)
    • 框框內為信件的內容,最後輸入.可結束
    • 最後QUIT離開連線
    • 圖檔
    • 如果這時候去看剛剛開著的DevNullSmtp的Last Message,會出現上面信件的內容,但我忘了截了
  • 以 Socket 程式實作 SMTP protocol messages
    • 開啟cmd
      • 輸入dir *.class,查看所有副檔名為class的檔案
      • 輸入java smtpClient執行smtpClient,下方則為server執行訊息
      • 圖檔
    • 回到DevNullSmtp,可以查看SMTP Log的內容(各種動作)
    • 圖檔
    • Last Message為信件內容,Email Watch則可以看總共寄了幾封信
    • 圖檔
    • 接著Stop Server,可netstat查看port 25,發現還是連接中(ESTABLISHED),why?
    • 圖檔
    • 抓到了!原來是java smtpClient這個程式還沒關掉,ctrl+C即可關掉它
    • 圖檔
    • 再netstat一次,就會發現port 25已關掉(因為等一下要開GreenMail,所以要釋放port 25)
    • 圖檔
  • Green Mail
    • 圖檔
      • 於smtp資料夾輸入javac smtpClient.java,編譯此程式,但是用舊的API,要加參數
      • 因此再加入 -Xlint:deprecation來編譯
      • dir smtpClient.* 來查看已有編譯成功
    • 將老師課堂筆記的程式碼部分貼上課程資料夾->smtp的cmd(要一行直接輸入,不要分段)
    • 圖檔
    • 這個指令將會開啟SMTP和POP3 Server,分別再Port 25 and 110(mail port and 收信 port)
    • 圖檔
    • copy smtp資料夾內的HexEditor.dll
    • 圖檔
    • 貼到C槽->Program Files(x86)->Notepad++ -> plugins
    • 圖檔
    • 開啟Notepadd++,開新檔案,打上0test10pwd1(帳號test1密碼pwd1)
    • 圖檔
    • 到外掛、Hex編碼,會以這個方式來呈現剛剛打的東西
    • 圖檔
    • 再把Hex關掉,接著將0test10pwd1反白,按外掛的MIME tools的Base64 Encode,將剛剛打的那串用Base64加密
    • 圖檔
    • 註:也可以用tclhttpd進行base64加密
    • 接著利用Putty進入SMTP(上面設定的127.0.0.1 port 25的那個),輸入指令
      • HELO 127.0.0.1
      • AUTH PLAIN Base64加密後的帳號密碼 (這是以PLAIN登入,還有一種是LOGIN(老師筆記有說明),像是要連入開在b2d的SMTP,就可以用LOGIN)
      • MAIL FROM: <test1>
      • RCPT TO: <test1> (自己寄給自己)
      • DATA (輸入信件內容)
      • QUIT
      • 圖檔
  • 練習 POP3 讀信的協定
    • 到C槽建tmp資料夾
    • 圖檔
    • 用putty進行連線,但要把port改為110,其餘不變(可以先load for smtp,直接改port,再換個名字(pop3 server)save就可以了,不用全部重來),都好了就open
    • 圖檔
    • 進去後輸入指令
      • USER test1
      • PASS pwd1 (帳號密碼)
      • LIST (信件列表)
      • RETR 1 (讀1)
      • 框起來的部分為信件內容,就是剛剛在SMTP自己寄給自己的那封
      • QUIT
      • 圖檔
BroadcastClientHandler Echo Server
  • 在JavaNetworkingSocket中輸入javac BroadcastClientHandler.java(編譯這個程式)
  • java BroadcastClientHandler執行程式,開在port 8010
  • 圖檔
  • 用putty連port 8010,名為broadcasting Echo,把他save起來 (一樣可以套用之前for smtp的設定)
  • 圖檔
  • 最後再多開一個putty連上去這個port 8010,當2說hello,1也會收到hello,1說hi,2也會收到hi,也就是像聊天室一樣,所有輸入內容都會廣播給所有連接的人
  • 圖檔
405401334莊凱智
問題很多的小學生
 
文章: 13
註冊時間: 週五 9月 21, 2018 8:19 am

Re: 1228甲班上課筆記

文章405401334莊凱智 » 週五 12月 28, 2018 9:25 pm

我有一個疑問,就是在green mail的最前面對smtpClient做編譯的目的為何? 忘記為什麼要這麼做了 :shock:
405401334莊凱智
問題很多的小學生
 
文章: 13
註冊時間: 週五 9月 21, 2018 8:19 am

Re: 1228甲班上課筆記

文章XO » 週五 1月 11, 2019 10:47 am

405401334莊凱智 寫:我有一個疑問,就是在green mail的最前面對smtpClient做編譯的目的為何? 忘記為什麼要這麼做了 :shock:


那是個 Java 發郵件的程式,讓同學知道除了手動發郵件以外,還可以用 Programming API 自動發信!
Java 程式源碼 當然要先編譯才能執行!
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5473
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.


回到 資料通訊與網路

誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 4 位訪客