[筆記]如何用Telnet測試SMTP AUTH
如何利用 Telnet 測試 SMTP AUTH
- 首先,要先取得SMTP server授權帳號與密碼的Base64字串
Linux系統可以使用Perl指令,Windows可以使用Powershell,或是也可以在git bash上使用Perl指令。
- Perl
1
perl -MMIME::Base64 -e 'print encode_base64("username");'
注意!
我犯了個錯
當用雙引號包著‘@’要對‘@’進行跳脫
因此,上方的指令若username是email會變成perl -MMIME::Base64 -e 'print encode_base64("user\@smtp.com")'
或者改用單引號perl -MMIME::Base64 -e "print encode_base64('user@smtp.com')"
stackoverflow]
- Powershell
1
powershell "[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(\"username\"))"
- 使用Telnet進行連線
Windows系統需先至控制台>程式與功能>開啟關閉Windows功能
將Telnet 客戶端(Client)勾選
指令:telnet [要連線的smtp server位置] PORT1
telnet mailserver.com 25
- 跟server打招呼
(我要來找你了!這樣的意思嗎)1
EHLO mailserver.com
- 告訴server要進行驗證登入
1 | AUTH LOGIN |
server 會回應334 VXNlcm5hbWU6
的內容,後面其實是”Username:”的Base64字串
此時輸入一開始要記下來的帳號Base64字串
接著,server 再回應334 UGFzc3dvcmQ6
,這就是”Password:”的Base64字串
便輸入密碼的Base64字串
好奇上面Base64字串內容,Windows系統將Powershell指令倒裝一下就好了
接著你就會看到訊息是驗證成功或失敗了。