最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java發(fā)送javax.mail郵件實例講解

 更新時間:2016年01月26日 09:00:30   投稿:lijiao  
這篇文章主要為大家介紹了java發(fā)送javax.mail郵件實例講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下

平時我們網(wǎng)上逛網(wǎng)站的時候,經(jīng)常會用到網(wǎng)站的注冊。有很多方法,比如發(fā)短信驗證,發(fā)郵箱驗證。最近在SSH框架下,做了一個簡單的郵件發(fā)送激活鏈接到郵箱,然后激活注冊用戶的一個功能。我用到的MailServer是易郵郵件服務(wù)器,引用的是javax.mail.jar包。javamail顧名思義,提供給開發(fā)者處理電子郵件相關(guān)的編程接口。它是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。

【常用類介紹】

下面有一些常用的類,給大家介紹一下:

【Authenticator】

      這個是一個抽象類,通過用戶名和密碼訪問受保護的資源,這些資源就是郵件服務(wù)器。創(chuàng)建完成后,必須向 session 注冊 Authenticator。然后,在需要認證的時候,就會通知 Authenticator。

【Message】

     這是一個抽象類用來創(chuàng)建要發(fā)送的消息,比如主題,內(nèi)容啊。必須有一個子類來實現(xiàn)方法。

【Session】

      Session類定義了一個基本郵件會話(session),是Java Mail API最高層入口類。所有其它類都是經(jīng)由這個session才得以生效。Session對象用Java.util.Properties對象獲取信息,如郵件服務(wù)器、用戶名、密碼及整個應(yīng)用程序中共享的其它信息。這個Session類代表JavaMail中的一個郵件session。每一個基于JavaMail的應(yīng)用程序至少有一個session但是可以有任意多的session。
  Session sendMailSession;
  sendMailSession = Session.getInstance(props, null);

【Transport】

       消息發(fā)送的最后一部分是使用Transport類。這個類用協(xié)議指定的語言發(fā)送消息(通常是SMTP)。它是抽象類,它的工作方式與Session有些類似。僅調(diào)用靜態(tài)send() 方法,就能使用類的缺省版本:Transport.send(message)?;蛘?,讀者也可以從針對自己的協(xié)議的會話中獲得一個特定的實例,傳遞用戶名和密碼(如果不必要就不傳),發(fā)送消息,然后關(guān)閉連接。

【代碼實現(xiàn)】
mail工具類:

package cn.itcast.shop.utils; 
 
import java.util.Properties; 
 
import javax.mail.Authenticator; 
import javax.mail.Message; 
import javax.mail.Message.RecipientType; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
 
/** 
 * 郵件發(fā)送工具類 
 * @author Zhouzhou 
 * @date 2016-1-1 
 * @time 上午08:52:47 
 */ 
public class MailUitls { 
  public static void sendMail(String to,String code){ 
     
    /** 
     * 1.獲取session 
     * 2.創(chuàng)建一個代碼郵件的對象message 
     * 3.發(fā)送郵件Transport 
     */ 
    /** 
     * 1.獲得連接對象 
     */ 
    Properties props=new Properties(); 
    props.setProperty("mail.host","localhost"); 
    Session session=Session.getDefaultInstance(props, new Authenticator(){ 
 
      @Override 
      protected PasswordAuthentication getPasswordAuthentication() { 
        // TODO Auto-generated method stub 
        return new PasswordAuthentication("service@azz.com","111"); 
      } 
       
    }); 
    //2.創(chuàng)建郵件發(fā)送對象 
    Message message=new MimeMessage(session); 
    //3.設(shè)置發(fā)件人 
    try { 
      message.setFrom(new InternetAddress("service@azz.com")); 
      //設(shè)置收件人 
      message.addRecipient(RecipientType.TO, new InternetAddress(to)); 
      //標題 
      message.setSubject("來自周洲商城的官方激活郵件"); 
      message.setContent("<h1>AZZ商城官方激活郵件!點下面鏈接完成激活操作!</h1><h3><a text/html;charset=UTF-8"); 
      // 3.發(fā)送郵件: 
      Transport.send(message); 
    } catch (AddressException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    } catch (MessagingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    } 
  } 
 
   
  public static void main(String[] args) { 
    sendMail("aaa@azz.com","你的激活碼是azz19931016"); 
  } 
} 

User的業(yè)務(wù)層在注冊的時候調(diào)用這個類,使用sendmail方法。

package cn.itcast.shop.user.service; 
import org.springframework.transaction.annotation.Transactional; 
import cn.itcast.shop.user.dao.UserDao; 
import cn.itcast.shop.user.vo.User; 
import cn.itcast.shop.utils.MailUitls; 
import cn.itcast.shop.utils.UUIDUtils; 
 
//業(yè)務(wù)層 
@Transactional 
public class UserService { 
  //安裝用戶名查詢用戶的方法 
  private UserDao userDao; 
 
  public void setUserDao(UserDao userDao) { 
    this.userDao = userDao; 
  } 
   
  public User findByUsername(String username){ 
    return userDao.findByUsername(username); 
  } 
 
  //業(yè)務(wù)層:完成 用戶注冊 
  public void save(User user) { 
    // TODO Auto-generated method stub 
    //將數(shù)據(jù)存入數(shù)據(jù)庫 
    user.setState(0);//1已經(jīng)激活,0沒有激活 
    String code=UUIDUtils.getUUID()+UUIDUtils.getUUID(); 
    user.setCode(code); 
    userDao.save(user); 
    // 發(fā)送激活郵件; 
    MailUitls.sendMail(user.getEmail(), code); 
  } 
 
  // 業(yè)務(wù)層根據(jù)激活碼查詢用戶 
  public User findByCode(String code) { 
    return userDao.findByCode(code); 
  } 
 
  // 修改用戶的狀態(tài)的方法 
  public void update(User existUser) { 
    userDao.update(existUser); 
  } 
   
  // 用戶登錄的方法 
  public User login(User user) { 
    return userDao.login(user); 
  }   
} 

最后實現(xiàn)了這樣的效果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

相關(guān)文章

  • 詳解Java消息隊列-Spring整合ActiveMq

    詳解Java消息隊列-Spring整合ActiveMq

    本篇文章主要介紹了詳解Java消息隊列-Spring整合ActiveMq ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Mybatis動態(tài)調(diào)用表名和字段名的解決方法

    Mybatis動態(tài)調(diào)用表名和字段名的解決方法

    今天在項目開發(fā)中有個業(yè)務(wù)是需要限制各個用戶對某些表里的字段查詢以及某些字段是否顯示,這種情況下,就需要構(gòu)建sql來動態(tài)傳入表名、字段名了,下面給大家介紹mybatis動態(tài)調(diào)用表名和字段名的解決方法,一起看看吧
    2016-10-10
  • java 方法泛型入?yún)和String的重載關(guān)系詳解

    java 方法泛型入?yún)和String的重載關(guān)系詳解

    這篇文章主要介紹了java 方法泛型入?yún)和String的重載關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java selenium教程之selenium詳細介紹

    java selenium教程之selenium詳細介紹

    本文主要介紹Java selenium,這里整理了selenium的一些基本資料,此軟件主要用于Web UI自動測試框架,有興趣的同學可以看一下
    2016-08-08
  • springboot使用自定義注解實現(xiàn)aop切面日志

    springboot使用自定義注解實現(xiàn)aop切面日志

    這篇文章主要為大家詳細介紹了springboot使用自定義注解實現(xiàn)aop切面日志,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • MybatisPlus字段自動填充失效,填充值為null的解決方案

    MybatisPlus字段自動填充失效,填充值為null的解決方案

    這篇文章主要介紹了MybatisPlus字段自動填充失效,填充值為null的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD

    SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD

    MyBatis是一個輕量級的對象關(guān)系映射(Object-Relational Mapping,ORM)框架,它允許開發(fā)者通過編寫SQL動態(tài)查詢數(shù)據(jù)庫,而無需顯式地操作JDBC,對于增刪改查操作,MyBatis提供了一種基于XML或注解的方式來進行,本文介紹了SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD
    2024-11-11
  • IDEA Project不顯示/缺失文件問題及解決

    IDEA Project不顯示/缺失文件問題及解決

    在側(cè)邊欄的project模式下,如果發(fā)現(xiàn)缺少部分文件,可以嘗試關(guān)閉項目,打開項目所在目錄,刪除目錄下的.idea文件夾,然后重新打開項目即可解決
    2024-11-11
  • 深入理解Java設(shè)計模式之外觀模式

    深入理解Java設(shè)計模式之外觀模式

    這篇文章主要介紹了JAVA設(shè)計模式之外觀模式的的相關(guān)資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2021-11-11
  • 詳解如何為SpringBoot Web應(yīng)用的日志方便追蹤

    詳解如何為SpringBoot Web應(yīng)用的日志方便追蹤

    在Web應(yīng)用程序領(lǐng)域,有效的請求監(jiān)控和可追溯性對于維護系統(tǒng)完整性和診斷問題至關(guān)重要,SpringBoot是一種用于構(gòu)建Java應(yīng)用程序的流行框架,在本文中,我們探討了在SpringBoot中向日志添加唯一ID的重要性,需要的朋友可以參考下
    2023-11-11

最新評論

岚皋县| 金昌市| 平和县| 页游| 七台河市| 邹平县| 霍城县| 湘阴县| 南木林县| 黔西县| 德阳市| 渭南市| 中阳县| 林口县| 卢氏县| 永福县| 潜江市| 上饶县| 丹阳市| 木兰县| 宣化县| 新竹市| 贵港市| 莆田市| 五河县| 罗源县| 东乡族自治县| 丰原市| 民勤县| 罗定市| 奈曼旗| 台北市| 德兴市| 玛多县| 京山县| 武宁县| 资阳市| 汶上县| 甘谷县| 上杭县| 会东县|