資源描述:
《用telnet通過smtp和pop收發(fā)郵件》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、用telnet通過smtp/pop3發(fā)送/接收郵件ghySMTP(SimpleMailTransferProtocol,簡單郵件傳輸協(xié)議)定義了郵件客戶端軟件與SMTP服務器之間,以及兩臺SMTP服務器間的通信規(guī)則。SMTP服務器之間的通信規(guī)則。SMTP協(xié)議中一共定義了18條命令,發(fā)送一封電子郵件的過程通常只需要使用其中6條命令,表1中按照發(fā)送命令的先后順序列出了這6條命令,并描述了其語法格式及功能說明,其中,代表空格,代表回車和換行。SMTP命令及格式說明HELOehlo命令是SMTP郵件
2、發(fā)送程序與SMTP郵件接收程序建立連接后必須發(fā)送的第一條SMTP命令。參數(shù)表示SMTP郵件發(fā)送者的主機名。ehlo命令用于替代傳統(tǒng)SMTP協(xié)議中的helo命令auth如果SMTP郵件接收程序需要SMTP郵件發(fā)送程序進行認證時,它會向SMTP郵件發(fā)送程序提示它所采用的認證方式,SMTP郵件發(fā)送程序接著應該使用這個命令回應SMTP郵件接收程序,參數(shù)表示回應的認證方式,通常是SMTP郵件接收程序先前提示的認證方式。mailfrom:此命令用于指定
3、郵件發(fā)送者的郵箱地址,參數(shù)表示發(fā)件人的郵箱地址。reptto:此命令用于指定郵件接收者的郵箱地址,參數(shù)表示接收者的郵箱地址。如果郵件要發(fā)送多個接收者,那么應使用多條reptto命令來分別指定每一個接收者的郵箱地址。data此命令用于表示SMTP郵件發(fā)送程序準備開始傳送郵件內容,在這個命令后面發(fā)送的所有數(shù)據都將被當做郵件內容,直至遇到“.”標志符,則表示郵件內容結束。quit此命令表示要結束
4、郵件發(fā)送過程,SMTP郵件接收程序接收到此命令后,將關閉與SMTP郵件發(fā)送程序的網絡連接。當SMTP服務器要對郵件客戶端軟件進行用戶身份驗證時,郵件客戶端軟件需要對用戶名和密碼進行BASE64編碼后再傳遞給SMTP服務器,因此要編寫一個能對用戶名和密碼進行BASE64編碼的工具程序。下面是用Java語言編寫的一個對用戶名和密碼分別進行BASE64編碼的工具程序。BASE64Util.javaimportjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStrea
5、mReader;importsun.misc.BASE64Encoder;classBASE64Util{publicstaticvoidmain(String[]args)throwsIOException{System.out.println("請輸入用戶名:");BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));StringuserName=in.readLine();System.out.print("請輸入密碼:");Stringpassword=in
6、.readLine();BASE64Encoderencoder=newBASE64Encoder();System.out.println("編碼后的用戶名為:"+encoder.encode(userName.getBytes()));System.out.println("編碼后的密碼為:"+encoder.encode(password.getBytes()));}}發(fā)送郵件命令telnetsmtp.163.com25(用telnet登陸25端口)HELOguhaiyue(客戶端發(fā)送HELO命令以標識發(fā)件人自己的身份)authlogin(
7、認證)d3Nfc3MyMDExX3N5c3VAMTYzLmNvbQ==(經過轉碼后的用戶名)c3MyMDEx(轉碼后的密碼)MAILFROM:RCPTTO:<494700815@qq.com>DATA(準備開始傳送郵件內容,在這個命令后面發(fā)送的所有數(shù)據都將被當做郵件內容)FROM:TO:<494700815@qq.com>SUBJECT:frommyselfItisjustatestfromtheothermailbox~usetelnettosend
8、andreceiveemails!workhardandhaveagoodday!.命令輸入后郵箱服務器返回的信息如下,表示操作成功:接