欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java郵件收發(fā)功能實現(xiàn)代碼

 更新時間:2016年06月11日 20:17:52   投稿:lijiao  
這篇文章主要為大家詳細介紹了java郵件收發(fā)功能實現(xiàn)代碼,具有一定的參考價值,感興趣的朋友可以參考一下

本文實例為大家分享了郵件收發(fā)功能的具體實現(xiàn)代碼,供大家參考,具體內(nèi)容如下

準(zhǔn)備工作, 環(huán)境搭建:
1. 本地搭建一個郵件服務(wù)器
  易郵服務(wù)器,eyoumailserversetup.exe
2. 新建郵箱賬號
  張三給李四發(fā)郵件。
  步驟1:
    新建域名: 工具, 服務(wù)器設(shè)置, 單域名框中輸入 itcast.com
  步驟2:
    新建郵箱賬號:  zhangsan@itcast.com
                            lisi@itcast.com
3. 安裝foxmail
    配置郵件發(fā)送服務(wù)器(smtp):  localhost      25
        郵件接收服務(wù)器(pop3):  localhost     110
    再新建賬號,就可以接收郵件了!

注意

如果是web項目,因為javaee自帶的有郵件功能,可能存在問題!
我們要用自己的mail.jar文件功能!  需要刪除javaee中mail包!

使用:

JavaMail開發(fā),先引入jar文件:

activation.jar   【如果使用jdk1.6或以上版本,可以不用這個jar文件】
mail.jar       【郵件發(fā)送核心包】

/**
 * 1. 發(fā)送一封普通郵件
 * @author Jie.Yuan
 *
 */
public class App_SendMail {

  @Test
  public void testSend() throws Exception {

    //0. 郵件參數(shù)
    Properties prop = new Properties();
    prop.put("mail.transport.protocol", "smtp");  // 指定協(xié)議
    prop.put("mail.smtp.host", "localhost");    // 主機  stmp.qq.com
    prop.put("mail.smtp.port", 25);         // 端口
    prop.put("mail.smtp.auth", "true");       // 用戶密碼認證
    prop.put("mail.debug", "true");         // 調(diào)試模式

    //1. 創(chuàng)建一個郵件的會話
    Session session = Session.getDefaultInstance(prop);
    //2. 創(chuàng)建郵件體對象 (整封郵件對象)
    MimeMessage message = new MimeMessage(session);
    //3. 設(shè)置郵件體參數(shù): 
    //3.1 標(biāo)題
    message.setSubject("我的第一封郵件 ");
    //3.2 郵件發(fā)送時間
    message.setSentDate(new Date());
    //3.3 發(fā)件人
    message.setSender(new InternetAddress("zhangsan@itcast.com"));
    //3.4 接收人
    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
    //3.5內(nèi)容
    message.setText("你好,已經(jīng)發(fā)送成功! 正文...."); // 簡單純文本郵件
    message.saveChanges();  // 保存郵件(可選)

    //4. 發(fā)送
    Transport trans = session.getTransport();
    trans.connect("zhangsan", "888");
    // 發(fā)送郵件
    trans.sendMessage(message, message.getAllRecipients());
    trans.close();
  }
}

帶圖片

/**
 * 帶圖片資源的郵件
 * @author Jie.Yuan
 *
 */
public class App_2SendWithImg {

  // 初始化參數(shù)
  private static Properties prop;
  // 發(fā)件人
  private static InternetAddress sendMan = null;
  static {
    prop = new Properties();
    prop.put("mail.transport.protocol", "smtp");  // 指定協(xié)議
    prop.put("mail.smtp.host", "localhost");    // 主機  stmp.qq.com
    prop.put("mail.smtp.port", 25);         // 端口
    prop.put("mail.smtp.auth", "true");       // 用戶密碼認證
    prop.put("mail.debug", "true");         // 調(diào)試模式
    try {
      sendMan = new InternetAddress("zhangsan@itcast.com");
    } catch (AddressException e) {
      throw new RuntimeException(e);
    }
  }

  @Test
  public void testSend() throws Exception {
    // 1. 創(chuàng)建郵件會話
    Session session = Session.getDefaultInstance(prop);
    // 2. 創(chuàng)建郵件對象
    MimeMessage message = new MimeMessage(session);
    // 3. 設(shè)置參數(shù):標(biāo)題、發(fā)件人、收件人、發(fā)送時間、內(nèi)容
    message.setSubject("帶圖片郵件");
    message.setSender(sendMan);
    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
    message.setSentDate(new Date());

    /***************設(shè)置郵件內(nèi)容: 多功能用戶郵件 (related)*******************/
    // 4.1 構(gòu)建一個多功能郵件塊
    MimeMultipart related = new MimeMultipart("related");
    // 4.2 構(gòu)建多功能郵件塊內(nèi)容 = 左側(cè)文本 + 右側(cè)圖片資源
    MimeBodyPart content = new MimeBodyPart();
    MimeBodyPart resource = new MimeBodyPart();

    // 設(shè)置具體內(nèi)容: a.資源(圖片)
    String filePath = App_2SendWithImg.class.getResource("8.jpg").getPath();
    DataSource ds = new FileDataSource(new File(filePath));
    DataHandler handler = new DataHandler(ds);
    resource.setDataHandler(handler);
    resource.setContentID("8.jpg");  // 設(shè)置資源名稱,給外鍵引用

    // 設(shè)置具體內(nèi)容: b.文本
    content.setContent("<img src='cid:8.jpg'/> 好哈哈!", "text/html;charset=UTF-8");

    related.addBodyPart(content);
    related.addBodyPart(resource);

    /*******4.3 把構(gòu)建的復(fù)雜郵件快,添加到郵件中********/
    message.setContent(related);


    // 5. 發(fā)送
    Transport trans = session.getTransport();
    trans.connect("zhangsan", "888");
    trans.sendMessage(message, message.getAllRecipients());
    trans.close();
  }
}

圖片+附件

/**
 * 3. 帶圖片資源以及附件的郵件
 * @author Jie.Yuan
 *
 */
public class App_3ImgAndAtta {

  // 初始化參數(shù)
  private static Properties prop;
  // 發(fā)件人
  private static InternetAddress sendMan = null;
  static {
    prop = new Properties();
    prop.put("mail.transport.protocol", "smtp");  // 指定協(xié)議
    prop.put("mail.smtp.host", "localhost");    // 主機  stmp.qq.com
    prop.put("mail.smtp.port", 25);         // 端口
    prop.put("mail.smtp.auth", "true");       // 用戶密碼認證
    prop.put("mail.debug", "true");         // 調(diào)試模式
    try {
      sendMan = new InternetAddress("zhangsan@itcast.com");
    } catch (AddressException e) {
      throw new RuntimeException(e);
    }
  }

  @Test
  public void testSend() throws Exception {
    // 1. 創(chuàng)建郵件會話
    Session session = Session.getDefaultInstance(prop);
    // 2. 創(chuàng)建郵件對象
    MimeMessage message = new MimeMessage(session);
    // 3. 設(shè)置參數(shù):標(biāo)題、發(fā)件人、收件人、發(fā)送時間、內(nèi)容
    message.setSubject("帶圖片郵件");
    message.setSender(sendMan);
    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
    message.setSentDate(new Date());

    /*
     * 帶附件(圖片)郵件開發(fā)
     */
    // 構(gòu)建一個總的郵件塊
    MimeMultipart mixed = new MimeMultipart("mixed");
    // ---> 總郵件快,設(shè)置到郵件對象中
    message.setContent(mixed);
    // 左側(cè): (文本+圖片資源)
    MimeBodyPart left = new MimeBodyPart();
    // 右側(cè): 附件
    MimeBodyPart right = new MimeBodyPart();
    // 設(shè)置到總郵件塊
    mixed.addBodyPart(left);
    mixed.addBodyPart(right);

    /******附件********/
    String attr_path = this.getClass().getResource("a.docx").getPath();
    DataSource attr_ds = new FileDataSource(new File(attr_path));
    DataHandler attr_handler = new DataHandler(attr_ds);
    right.setDataHandler(attr_handler);
    right.setFileName("a.docx");


    /***************設(shè)置郵件內(nèi)容: 多功能用戶郵件 (related)*******************/
    // 4.1 構(gòu)建一個多功能郵件塊
    MimeMultipart related = new MimeMultipart("related");
    // ----> 設(shè)置到總郵件快的左側(cè)中
    left.setContent(related);

    // 4.2 構(gòu)建多功能郵件塊內(nèi)容 = 左側(cè)文本 + 右側(cè)圖片資源
    MimeBodyPart content = new MimeBodyPart();
    MimeBodyPart resource = new MimeBodyPart();

    // 設(shè)置具體內(nèi)容: a.資源(圖片)
    String filePath = App_3ImgAndAtta.class.getResource("8.jpg").getPath();
    DataSource ds = new FileDataSource(new File(filePath));
    DataHandler handler = new DataHandler(ds);
    resource.setDataHandler(handler);
    resource.setContentID("8.jpg");  // 設(shè)置資源名稱,給外鍵引用

    // 設(shè)置具體內(nèi)容: b.文本
    content.setContent("<img src='cid:8.jpg'/> 好哈哈!", "text/html;charset=UTF-8");

    related.addBodyPart(content);
    related.addBodyPart(resource);



    // 5. 發(fā)送
    Transport trans = session.getTransport();
    trans.connect("zhangsan", "888");
    trans.sendMessage(message, message.getAllRecipients());
    trans.close();
  }
}

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)java程序設(shè)計有所幫助。

相關(guān)文章

  • 解決java使用axios.js的post請求后臺時無法接收到入?yún)⒌膯栴}

    解決java使用axios.js的post請求后臺時無法接收到入?yún)⒌膯栴}

    今天小編就為大家分享一篇解決java使用axios.js的post請求后臺時無法接收到入?yún)⒌膯栴},具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Java對稱與非對稱加密算法原理詳細講解

    Java對稱與非對稱加密算法原理詳細講解

    對稱加密算法指加密和解密使用相同密鑰的加密算法。對稱加密算法用來對敏感數(shù)據(jù)等信息進行加密,非對稱加密算法指加密和解密使用不同密鑰的加密算法,也稱為公私鑰加密
    2022-11-11
  • Java中對象的銷毀方法分析

    Java中對象的銷毀方法分析

    這篇文章主要介紹了Java中對象的銷毀方法,較為詳細的分析了對象的功能、用法及銷毀對象對于程序運行的益處,需要的朋友可以參考下
    2015-04-04
  • Spring?Feign超時設(shè)置深入了解

    Spring?Feign超時設(shè)置深入了解

    Spring?Cloud中Feign客戶端是默認開啟支持Ribbon的,最重要的兩個超時就是連接超時ConnectTimeout和讀超時ReadTimeout,在默認情況下,也就是沒有任何配置下,F(xiàn)eign的超時時間會被Ribbon覆蓋,兩個超時時間都是1秒
    2023-03-03
  • Java實現(xiàn)的簡單數(shù)字處理類及用法示例

    Java實現(xiàn)的簡單數(shù)字處理類及用法示例

    這篇文章主要介紹了Java實現(xiàn)的簡單數(shù)字處理類及用法,涉及java數(shù)字運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java源碼解析之超級接口Map

    Java源碼解析之超級接口Map

    今天給各位小伙伴介紹一下超級接口Map,文中對接口Map講的非常詳細,對正在學(xué)習(xí)java的小伙伴們有很好的幫助喲,需要的朋友可以參考下
    2021-05-05
  • java代理模式與動態(tài)代理模式詳解

    java代理模式與動態(tài)代理模式詳解

    代理就是一個人或者一個機構(gòu)代表另一個人或者另一個機構(gòu)采取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標(biāo)對象之前起到中介的作用
    2014-02-02
  • mybatis-plus更新字段為null的處理方式

    mybatis-plus更新字段為null的處理方式

    這篇文章主要介紹了mybatis-plus更新字段為null的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 關(guān)于接口ApplicationContext中的getBean()方法使用

    關(guān)于接口ApplicationContext中的getBean()方法使用

    這篇文章主要介紹了關(guān)于接口ApplicationContext中的getBean()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 老生常談比較排序之歸并排序(遞歸)

    老生常談比較排序之歸并排序(遞歸)

    下面小編就為大家?guī)硪黄仙U劚容^排序之歸并排序(遞歸)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論