激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于SSM框架+Javamail發送郵件的代碼實例

基于SSM框架+Javamail發送郵件的代碼實例

2020-07-19 12:23u014427391 Java教程

本篇文章主要介紹了基于SSM框架+Javamail發送郵件的代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

本篇介紹基于SSM框架(Spring4.0+SpringMVC+Mybatis)組合的Javamail應用,郵箱的話基于騰訊的QQ郵箱,其實也是Foxmail郵箱

先要了解一下SMTP協議和SSL加密

SMTP:稱為簡單郵件傳輸協議(Simple Mail Transfer Protocal),目標是向用戶提供高效、可靠的郵件傳輸。SMTP是一種請求響應的協議,也就是客戶機向遠程服務器發送請求,服務器響應,監聽端口是25,所以其工作模式有兩種:發送SMTP,接收SMTP。

SSL加密:用來保障瀏覽器和網站服務器的安全性,其原理用譯文解釋就是:

當你的瀏覽器向服務器請求一個安全的網頁(通常是 https://)

服務器就把它的證書和公匙發回來

瀏覽器檢查證書是不是由可以信賴的機構頒發的,確認證書有效和此證書是此網站的。

使用公鑰加密了一個隨機對稱密鑰,包括加密的URL一起發送到服務器

服務器用自己的私匙解密了你發送的鑰匙。然后用這把對稱加密的鑰匙給你請求的URL鏈接解密。

服務器用你發的對稱鑰匙給你請求的網頁加密。你也有相同的鑰匙就可以解密發回來的網頁了

然后介紹怎么實現javamail發送郵件,先要下載javamail的jar:mail.jar

去充當服務器的QQ郵箱開啟SMTP服務:

基于SSM框架+Javamail發送郵件的代碼實例

寫個發送郵件的業務類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.appms.email;
 
import java.util.Date;
import java.util.Properties;
 
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
import com.sun.mail.util.MailSSLSocketFactory;
 
public class JavaEmailSender {
 
 
  public static void sendEmail(String toEmailAddress,String emailTitle,String emailContent)throws Exception{
    Properties props = new Properties();
 
    // 開啟debug調試
    props.setProperty("mail.debug", "true");
    // 發送服務器需要身份驗證
    props.setProperty("mail.smtp.auth", "true");
    // 設置郵件服務器主機名
    props.setProperty("mail.host", "smtp.qq.com");
    // 發送郵件協議名稱
    props.setProperty("mail.transport.protocol", "smtp");
 
    /**SSL認證,注意騰訊郵箱是基于SSL加密的,所有需要開啟才可以使用**/
    MailSSLSocketFactory sf = new MailSSLSocketFactory();
    sf.setTrustAllHosts(true);
    props.put("mail.smtp.ssl.enable", "true");
    props.put("mail.smtp.ssl.socketFactory", sf);
 
    //創建會話
    Session session = Session.getInstance(props);
 
    //發送的消息,基于觀察者模式進行設計的
    Message msg = new MimeMessage(session);
    msg.setSubject(emailTitle);
    //使用StringBuilder,因為StringBuilder加載速度會比String快,而且線程安全性也不錯
    StringBuilder builder = new StringBuilder();
    builder.append(" "+emailContent);
    builder.append(" 時間 " + new Date());
    msg.setText(builder.toString());
    msg.setFrom(new InternetAddress("你的QQ郵箱"));
 
    Transport transport = session.getTransport();
    transport.connect("smtp.qq.com", "你的QQ郵箱", "你開啟SMTP服務申請的獨立密碼");
    //發送消息
    transport.sendMessage(msg, new Address[] { new InternetAddress(toEmailAddress) });
    transport.close();
  }
}

然后寫個SpringMVC框架的Controller類:

  1. /** 
  2.  * 跳轉到發送郵件頁面 
  3.  * @return 
  4.  * @throws Exception 
  5.  */ 
  6. @RequestMapping("/goSendEmail"
  7. public ModelAndView goSendEmail(HttpServletRequest request)throws Exception{ 
  8.   ModelAndView mv = this.getModelAndView(); 
  9.   String email = request.getParameter("email"); 
  10.   if(email!=null&&!"".equals(email)){ 
  11.     email = email.trim(); 
  12.     mv.setViewName("member/send_email"); 
  13.     mv.addObject("email", email); 
  14.   } 
  15.   return mv; 
  16.  
  17. /** 
  18.  * 發送郵件 
  19.  * @return 
  20.  * @throws Exception 
  21.  */ 
  22. @RequestMapping(value="/sendEmail",produces="application/json;charset=UTF-8"
  23. @ResponseBody 
  24. public Object sendEmail(HttpServletRequest request)throws Exception{ 
  25.   Map<String,String> map = new HashMap<String,String>(); 
  26.   String msg = "ok";   //發送狀態 
  27.   String toEMAIL = request.getParameter("EMAIL");         //對方郵箱 
  28.   String TITLE = request.getParameter("TITLE");          //標題 
  29.   String CONTENT = request.getParameter("CONTENT");        //內容 
  30.   JavaEmailSender.sendEmail(toEMAIL, TITLE, CONTENT); 
  31.   map.put("result", msg); 
  32.   return map; 

這里用了jQuery TIP插件進行驗證提示,所以需要引入相應的Jquery文件

  1. <script type="text/javascript" src="source/js/jquery-1.7.2.js"></script> 
  2.   <!--提示框--> 
  3.   <script type="text/javascript" src="source/js/jquery.tips.js"></script> 

Jquery表單驗證和Ajax異步請求:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!-- 發送郵件 -->
  <script type="text/javascript">
//發送
function sendEm(){
 
  if($("#TYPE").val()=="1"){
    $("#CONTENT").val(getContentTxt());
  }else{
    $("#CONTENT").val(getContent());
  }
  if($("#EMAIL").val()==""){
    $("#EMAIL").tips({
      side:3,
      msg:'請輸入郵箱',
      bg:'#AE81FF',
      time:2
    });
    $("#EMAIL").focus();
    return false;
  }
  if($("#TITLE").val()==""){
    $("#TITLE").tips({
      side:3,
      msg:'請輸入標題',
      bg:'#AE81FF',
      time:2
    });
    $("#TITLE").focus();
    return false;
  }
  if($("#CONTENT").val()==""){
 
    $("#nr").tips({
      side:1,
      msg:'請輸入內容',
      bg:'#AE81FF',
      time:3
    });
    return false;
  }
 
  var EMAIL = $("#EMAIL").val();
  var TYPE = $("#TYPE").val();
  var TITLE = $("#TITLE").val();
  var CONTENT = $("#CONTENT").val();
 
  $("#zhongxin").hide();
  $("#zhongxin2").show();
 
  $.ajax({
    type: "POST",
    url: 'retroaction/sendEmail.do?tm='+new Date().getTime(),
    data: {EMAIL:EMAIL,TITLE:TITLE,CONTENT:CONTENT},
    dataType:'json',
    //beforeSend: validateData,
    cache: false,
    success: function(data){
      if("ok" == data.result){
        $("#msg").tips({
            side:3,
            msg:'發送成功!',
            bg:'#68B500',
            time:5
           });
        setTimeout("showdiv()",1000); 
      }else{
        $("#msg").tips({
            side:3,
            msg:'發送失敗!',
            bg:'#68B500',
            time:5
           });
      }
 
    }
  });
 
}
 
</script>

JSP頁面的調用:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!-- 編輯郵箱 -->
    <div>
    <table style="width:98%;" >
      <tr>
        <td style="margin-top:0px;">
           <div style="float: left;" style="width:81%"><textarea name="EMAIL" id="EMAIL" rows="1" cols="50" style="width:600px;height:20px;" placeholder="請選輸入對方郵箱,多個請用(;)分號隔開" title="請選輸入對方郵箱,多個請用(;)分號隔開">${email}</textarea></div>
           <div style="float: right;" style="width:19%"><a class='btn btn-mini btn-info' title="編輯郵箱" onclick="dialog_open();">編輯郵箱</i></a></div>
        </td>
      </tr>
      <tr>
        <td>
           <input type="text" name="TITLE" id="TITLE" value="" placeholder="請選輸入郵件標題" style="width:98%"/>
        </td>
      </tr>
      <tr>
        <td id="nr">
           <script id="editor" type="text/plain" style="width:650px;height:259px;"></script>
        </td>
      </tr>
      <tr>
        <td style="text-align: center;">
          <a class="btn btn-mini btn-primary" onclick="sendEm();">發送</a>
          <a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
        </td>
      </tr>
    </table>
    </div>
    <div id="zhongxin2" class="center" style="display:none"><br/><img src="assets/images/jzx.gif" id='msg' /><br/><h4 class="lighter block green" id='msg'>正在發送...</h4></div>   

基于SSM框架+Javamail發送郵件的代碼實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/u014427391/article/details/53887801

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本不卡一区在线观看 | 高清在线观看av | 国产精品一区二区三区在线播放 | 宅男噜噜噜66国产在线观看 | 精品视频一区二区三区四区 | 久久草草亚洲蜜桃臀 | 免费看黄色一级大片 | 欧美自拍 | av电影免费在线看 | 国产分类视频 | 日韩精品一区二区久久 | 久久久久成人免费 | 国产午夜精品久久久久久免费视 | 久久久久久久久久久久免费 | 国产亚洲福利 | 爱逼爱操综合网 | 悠悠成人资源亚洲一区二区 | 激情国产视频 | 久久精品.com | 一级毛片高清 | 免费看成人毛片 | 依依成人精品视频 | 日日天日日夜日日摸 | 黄色1级视频 | 国产91久久久久 | 欧美一级高清片在线 | 国产99免费 | h色网站在线观看 | 女人久久久www免费人成看片 | 久久久精品视频免费看 | 一区二区三区欧美日韩 | 本站只有精品 | 国产一及毛片 | 成年免费视频黄网站在线观看 | 国产69精品久久久久9999不卡免费 | 精品国产一区二区在线 | 久久精品欧美电影 | 午夜久久久精品一区二区三区 | 亚洲精品成人悠悠色影视 | 久久国产精品小视频 | 久久超|