宋德強,高 建
(盤錦職業技術學院,盤錦 124000)
電子郵件的發送、接收等環節涉及到非常復雜的細節問題,涉及到各種通信協議的綜合運用。對于普通用戶來說,電子郵件的發送與接收操作非常簡單,但要通過程序實現電子郵件功能就需要運用各種API,同時要確保電子郵件系統與API接口輸出協議之間的耦合。在基于Java語言的電子郵件編程接口Java Mail中為程序開發人員提供了一些抽象類,它們的主要作用是為電子郵件系統定義通用類及其接口,為程序開發人員提供易用、擴展性良好的視圖。Java Mail API接口是以Java語言為基礎,用于處理電子郵件信息的接口,也可用于處理一部分基礎協議。通常來說,電子郵件系統需要實現兩種不同的協議。Sun用于服務的原語——傳輸(Transport)服務可以將消息傳送至指定的目的地。SMTP傳輸是目前使用最廣泛的傳輸協議類型是。而另一類服務是存儲(Store),它可以用于獲取以及發送至用戶郵箱的消息。盡管IMAP存儲應用日益普及,然而大部分用戶依然對POP3存儲更加熟悉。POP3、IMAP接口相同,使用JavaMail接口的任意電子郵件系統都可以通過同一種方式訪問POP3存儲、IMAP存儲。像SMTP、X.400這樣具體的消息傳輸也可以交換使用。總之,Java Mail API具有使多項功能同時實現的能力。運用傳輸、存儲著兩個基礎服務,將用戶信息轉換為代碼,通過網絡傳輸,然后再將代碼轉換成信息,實現用戶之間的電子郵件通信。而通過網絡轉換、傳輸、接收信息是Java語言實現信息交換的核心功能,這也是Java語言被廣泛應用于電子息傳輸系統中的主要原因。
從本質上來說,SMTP協議的主要作用是實現基于Java語言的電子郵件發送信息的功能。利用SMTP協議實現電子郵件傳輸的基本步驟如下:
(1)打開JavaMail會話框,用以下兩種方式獲取會話(session),第一種,利用session.getDefultInstance()得到共享session;而是利用Session.getInstance()自建新的session。其中與別人分享的會話框是他人向你發送信息后系統生成的會話框,用戶可以利用這個他人發送來的信息框和對方交流信息。假如是用戶自己想要發送消息給對方,就可以通過自建會話框的方式向對方發送消息,實現信息交流。
(2)構造消息。在啟動會話框之后需要構造消息。一般情況下,我們可以利用一個Mime Message(session)構造器程序實現消息構造。通過該構造器程序可以對郵件的發送方、接收方、郵件主題、郵件內容進行編輯,相關核心代碼:Mime Message message=new Mime Message(session);//創 建 消 息 message.setFrom(Address address);//發送方地址 message.setRecipient(Message RecipientType type,Address address);//接收方地址message.setSubject(String subject);//郵件主題 message.setText(string text);//郵件內容。消息構造好之后將這些需要傳輸的信息先轉換成相應的代碼,便于進行網絡傳輸。
(3)使用傳輸類傳輸消息。經過上述兩步處理之后,需要利用Transport類實現消息傳輸:static Transport.send(Message message)。
電子郵件傳輸到目的地后需要進行接收處理。電子郵件的接收與電子郵件的傳輸類似,目前主要利用POP3協議實現郵件信息接收,其基本步驟如下:
(1)電子郵件信息的接收與電子郵件信息傳輸第一步類似,都需要打開一個JavaMail會話框,這個會話框也就是上文所述的和他人分享的信息交流框。
(2)在打開會話框之后,可以利用POP3協議生成信息儲存箱,用于儲存傳輸過來的信息,方便用戶查閱;首先需獲得缺省文件夾及郵箱,獲取消息并處理。
Folder folder=store.getDefaultFolder();//獲得缺省文件夾
folder=folder.getFolder(“INBOX”);//指定收件箱
Folder.open(Folder.READ ONLY);//只讀方式打開
Message[]messages=folder.getMessages();//獲得消息封裝
(3)消息存儲之后,用戶可以打開信息框查閱信息,獲取消息內容。
(4)經過上述步驟處理后,最后一步是輸出消息內容,將程序代碼轉換成這信息。這樣一來就和傳輸程序構成了交替循環的工序。通過電子郵件傳輸和電子郵件接收者兩個環節實現Java語言傳輸。
綜上所述,不斷發展的電子郵件系統為人們的交流溝通提供了極大的便利,Java語言在電子郵件中的應用極大地促進了電子郵件通信技術的發展,可以預見,今后Java語言在電子郵件系統開發中的應用將會越來越廣泛。