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

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

從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:user@user.com";
String RCPT_TO="RCPT_TO: user@user.com";
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地址。


主站蜘蛛池模板: 在线观看精品自拍视频 | 婷婷色香| 日韩午夜在线视频不卡片 | 五月婷婷影院 | 欧美又大粗又爽又黄大片视频黑人 | 新男人皇宫亚洲男人 | 四虎永久免费观看 | 在线免费观看韩国a视频 | 日韩手机看片福利精品 | 天堂伦理| 日韩亚洲欧美在线 | 婷婷六月久久综合丁香乐透 | 特黄一级视频 | 婷婷97狠狠的狠狠的爱 | 色啪网| 日韩高清免费观看 | 亚洲免费福利视频 | 青青国产视频 | 日韩精品欧美成人 | 亚洲最色网站 | 夜色1网站 | 天天综合网站 | 天堂在线最新资源 | 日本高清久久 | 在线观看欧美亚洲 | 亚洲综合图区 | 欧美亚洲综合另类型色妞 | 日韩视频在线观看中字 | 一级黄片一级毛片 | 午夜精品久久久久 | 亚洲一区二区三区高清视频 | 在线观看亚洲视频 | 欧美亚洲国产精品久久高清 | 日韩尤物 | 亚洲专区欧美专区 | 雪白丰满丝袜长腿白嫩在线 | 亚洲福利精品一区二区三区 | 日韩怡春院| 日本综合久久 | 亚洲福利视频一区二区 | 五月六月婷婷 |