java網上商城開發之郵件發送功能(全)_java

來源:互聯網
上載者:User

最近在學習網上商城時,接觸到了一個郵件發送的功能。之前一直在使用郵箱進行發送郵件,但是其中的具體如何運轉的卻不知道是怎麼回事。那麼郵件發送究竟是怎麼一回事呢?

郵件發送過程:

流程說明:首先是發送人將郵件通過用戶端軟體發送到特定的伺服器上,然後通過電子郵件簡單傳輸協議(SMTP)來進行傳輸,收件者通過POP3協議將郵件從伺服器上接受回來。這樣就實現了郵件之間的相互傳送。

實現過程:

在有網路的情況下,我們可以直接使用搜狐、網易等郵箱進行發送。那麼如何在沒有網路的情況下,實現內部之間的發送呢?

 首先需要安裝配置一個伺服器,視頻中使用的是易郵郵件伺服器,該軟體的安裝比較簡單,安裝成功之後會有一個失敗提示,如下:

      

該問題沒有影響(暫時還沒有遇到什麼問題)我們的功能,可以忽略。安裝完成之後需要對其進行一些配置。先進行伺服器設定,開啟工具——>伺服器設定:設定自己伺服器位址的網域名稱(類似於我們使用的網易郵箱的網域名稱@後的163.com)

      

然後添加新帳號:設定名稱和密碼

     

添加之後的效果如下:

    

伺服器配置完成之後,進行用戶端的安裝與配置,因為本機已經安裝了foxmail的最新版本,為了不造成混亂,所以用foxmail6.5進行設定,其中安裝過程不再敘述。

首先要新添加使用者賬戶(如果在安裝過程中已經設定了測試的使用者就不用再添加),填入測試的賬戶,如下:

    

點擊下一步,設定服務類型和伺服器,這裡需要注意伺服器的配置,由於自己是在本地進行郵件傳送,所以發、送郵件伺服器都設定為本地:localhost。

    

設定好之後,下一步,進行測試:

    

成功之後即可關閉配置,此時配置基本上就完成了

    

在此次配置過程中需要注意:

      1、設定管理員的網域名稱,並且添加一些賬戶

      2、配置用戶端時,注意接收伺服器位址的設定、伺服器類型等問題。

 至此,我們發送郵件所需要的環境已經配置完成,具體的代碼實現過程,將在下篇進行詳細介紹。通過這次的學習,瞭解了郵件服務的基本原理,知道了我們平常發送郵件的過程。同時,也讓自己對一些伺服器設定、網域名稱及類型有了新的認識,之前也曾遇到過foxmail無法工作的問題,現在基本上知道其問題處在何處了。知識,總是在不斷的實踐中獲得的,而且是需要不斷的反覆學習和鍛煉。

以上基本上將發送的原理說了一下,以及如何進行配置郵件服務。下面主要說一下發送郵件的一些具體的實現過程。

代碼實現發送過程主要分為三個步驟:

第一步是獲得串連,通過java中的Properties類來進行讀取設定檔,調用基類的一些方法進行基礎的設定以及串連設定。

 // 1、獲得串連   Properties props=new Properties();//Properties是java中的一個重要的類,主要用於讀取java的設定檔   //設定已連線的服務器   props.setProperty("mail.host", "localhost");//調用Hashtable的方法put,通過調用基類的put方法來設定索引值對   Session session=Session.getInstance(props, new Authenticator(){    @Override   protected PasswordAuthentication getPasswordAuthentication() {    // TODO Auto-generated method stub    //設定自己的服務郵件地址和密碼    return new PasswordAuthentication("service@pengbo.com","1");   }        }); 

第二步是進行建立郵件對象,主要是通過Message這個載體進行封裝資訊,Message是一個抽象類別,已知的實作類別有MimeMessage。   

// 2、建立郵件對象   Message message=new MimeMessage(session); // 設定發送人   try {    //設定服務端   message.setFrom(new InternetAddress("service@pengbo.com")); //  設定收件者   message.addRecipient(RecipientType.TO, new InternetAddress(to)); //  設定標題   message.setSubject("購物啟用郵件"); //  設定郵件內文   message.setContent("<h1>購物啟用郵件,點下面連結完成啟用操作!</h1><h3><a href='http://192.168.21.84:8080/shop/user_active.action?code="+code+" '>http://192.168.21.84:8080/shop/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8"); 

第三步是發送郵件

// 3、發送郵件 Transport.send(message); 這樣發送郵件的主要流程就實現了,然後在此類中定義主方法: public static void main(String[] args){   //要發送的對象及驗證碼    sendMail("a@pengbo.com","11111111");   }  在Service層進行調用郵件發送的方法即可: // 發送啟用郵件   MailUitls.sendMail(user.getEmail(), code);  

具體的知識積累:

       1、Properties  主要擷取設定檔資訊,主要的方法有getProperty ( String key)、load ( InputStream inStream)、setProperty ( String key, String value)、store ( OutputStream out, String comments)、clear ()

       2、Session  是一對配置資訊的集合,主要作用是接收各種配置屬性資訊,初始化JavaMail環境

       3、Message  是一個抽象類別,它實現介面Part,並定義了一些屬性

       4、transport是指傳輸郵件,與之對應的是store儲存功能。 

    功能雖然實現了,但是其中用到的一些類還需要進行深入的學習和研究。就目前而言,僅僅有了一個入門,知道了在JavaMail中,有Properties、Session、Message這幾個重要的類。

以上就是本文的全部內容,希望對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.