六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

從Java應用程序中發送E-mail

[摘要]Java作為一種網絡編程語言,具有強大的網絡編程功能,可以用僅僅幾條語句完成其他語言需要的幾十條甚至上百條語句所能完成的功能。這里,我試著用Java編寫了一個可以用來發送E-mail的程序,很簡單,僅僅作為示例。  首先,需要了解一下SMTP協議(簡單郵件傳輸協議),是定義郵件傳輸的協議,它是基于...
Java作為一種網絡編程語言,具有強大的網絡編程功能,可以用僅僅幾條語句完成其他語言需要的幾十條甚至上百條語句所能完成的功能。這里,我試著用Java編寫了一個可以用來發送E-mail的程序,很簡單,僅僅作為示例。
  首先,需要了解一下SMTP協議(簡單郵件傳輸協議),是定義郵件傳輸的協議,它是基于TCP服務的應用層協議,由RFC0821所定義。SMPT協議規定的命令是以明文方式進行的。下表說明了SMTP服務器發送電子郵件所需的步驟。


SMTP協議

協議  描述
HELO本地主機名 啟動與SMTP服務器的通信

MAIL FROM:用戶@電子郵件地址.com 指定誰正在發送電子郵件
用戶@電子郵件地址.com  指定誰將接收電子郵件
DATA 指定電子郵件的數據是下一個
(你的電子郵件信息) 指定電子郵件的信息(任意行)
一個點指定電子郵件的結束
QUIT 正常關閉連接



  這就是一個簡單的發送郵件的會話過程,其實當使用outlook express等客戶軟件發送時,后臺進行的交互也是這樣的,當然,SMTP協議為了處理復雜的郵件發送情況如附件等等,定義了很多的命令及規定,具體可以通過閱讀RFC821來獲得。
  當你的一個朋友向你發送郵件時,他的郵件服務器和你的郵件服務器通過SMTP協議通信,將郵件傳遞給你郵件地址所指示的郵件服務器上(這里假設你的本地郵件服務器是Linux系統),若你通過telnet協議直接登錄到郵件服務器上,則可以使用mail等客戶軟件直接閱讀郵件,但是若你希望使用本地的MUA(Mail User Agent,如outlook express等客戶軟件)來閱讀郵件,則本地客戶端通過POP3或IMAP協議與郵件服務器交互,將郵件信息傳遞到客戶端(如:win98系統)。而如果你向你的朋友回復一封信件時,你所使用的MUA也是通過SMTP協議與郵件服務(一般為發送郵件地址對應的email地址)器通信,指示其希望郵件服務器幫助轉發一封郵件到你朋友的郵件地址指定的郵件服務器中。若本地郵件服務器允許你通過它轉發郵件,則服務器通過SMTP協議發送郵件到對方的郵件服務器。這就是接受和發送郵件的全部過程。
  了解了電子郵件的發送過程,我們就可以利用Java的強大功能來實現這一過程了,下面這個程序SendMail.java演示了如何在應用程序中發送電子郵件。
import java.io.*
import java.net.*
public class SendMail
{static PrintStream ps=null; //發送信息
static DatainputStream dis=null; //接受信息
public static void send(String str) throws IOException
{ps.println(str); //發送串
ps.flush(); //刷新該串
System.out.println("Java sent: "+str);
}
public static void receive() throws IOException
{ String readstr=dis.readLine(); //得到smtp響應
System.out.println("SMTP response: "+readste);
}
public static void main (String args[])
{String HELO="HELO";
String MAIL_FROM="MAIL_FROM:[email protected]";
String RCPT_TO="RCPT_TO: [email protected]";
String SUBJECT="SUBJECT:Java is cool!";
String DATA="DATA"; //消息的開始
String BODY="Java send this!\r\n.\r\n";
//注意:"\r\n.\r\n" 標志該信息結束
Socket smtp=null; //smtp套接字
try{smtp=new Socket("smtp.any.com",25);
//注意:25是smtp的默認端口號
OutputStream os= smtp.getOutputStream();
ps=new PrintStream(os);
InputStream is= smtp.getIntputStream();
dis=new DataInputStream(is)
}
catch(IOException e)
{System.out.println("error");
}
try{//告訴smtp已準備好
String loc=InetAddress.getLocalHost().getHostname();
send(HELO+loc);
receive(); //得到smtp響應
send(MAIL_FROM); //從地址發出
receive(); //得到smtp響應
send(RECP_TO); //發送smtp給誰
receive(); //得到smtp響應
send(DATA); //發送smtp開始
receive(); //得到smtp響應
send(SUBJECT); //發送smtp標題
receive(); //得到smtp響應
send(BODY); //發信息主體
receive(); //得到smtp響應
smtp.close(); //關閉連接
}
catch(IOException e)
{ System.out.println("error");
}
System.out.println("Mail Sent!");
}
}
  你應該注意到,電子郵件消息的數據部分有兩段:頭部和主體。在頭部,你可以制定有關這條消息的附加信息。在前面這個示例中,程序設置了這條消息的主題。為了運行上述代碼,必須改變SMTP域名,以及發送者和接收者的E-mail地址。


主站蜘蛛池模板: 午夜欧美福利视频 | 小明www永久在线看 小黄鸭b站视频在线 | 日本剧情片免费观看网址 | 日韩大片免费观看视频播放 | 亚洲欧美香蕉在线日韩精选 | 亚洲成在人天堂在线 | 日韩不卡一级毛片免费 | 天天干天天拍天天射 | 日韩欧美系列 | 午夜视频国语 | 青草草在线| 亚洲特黄视频 | 欧美一区不卡二区不卡三区 | 伊人中文字幕 | 中文字幕高清有码在线中字 | 日韩欧美亚洲乱码中文字幕 | 日韩在线毛片 | 欧美亚洲日本 | 在线播放国产一区二区三区 | 欧洲成品大片在线播放 | 人人干夜夜操 | 在线视频观看亚洲 | 日本中文字幕视频 | 日本三级精品 | 天天操天天透 | 午夜网站视频 | 中国国产aa一级毛片 | 亚洲黄色成人 | 天天操天天舔天天射 | 天天天操天天天干 | 日韩精品一区二区三区 在线观看 | 亚洲免费视频一区 | 午夜在线亚洲男人午在线 | 欧美特黄特色aaa大片免费看 | 亚洲欧美激情综合第一区 | 伊人久久大香线蕉观看 | 亚洲五月婷 | 四虎在线播放免费永久视频 | 日本片免费观看一区二区 | 亚洲欧美系列 | 日日夜夜精品免费视频 |