程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> SSH框架網上商城項目第25戰之應用java email給用戶發送郵件

SSH框架網上商城項目第25戰之應用java email給用戶發送郵件

編輯:關於JAVA

SSH框架網上商城項目第25戰之應用java email給用戶發送郵件。本站提示廣大學習愛好者:(SSH框架網上商城項目第25戰之應用java email給用戶發送郵件)文章只能為提供參考,不一定能成為您想要的結果。以下是SSH框架網上商城項目第25戰之應用java email給用戶發送郵件正文


當用戶購置完商品後,我們應當向用戶發送一封郵件,告知他定單已生成之類的信息,郵箱地址是從用戶的根本信息中獲得,好了,起首我們來看一下java中發送郵件的辦法。

1. java中發送email的辦法

  在完美這個項目之前,先往返顧一下java中是若何發送郵件的,起首確定須要發送郵件的jar包:mail.jar,導入到lib目次下,好了,上面我們先寫一個通俗的java法式往返顧一下java email的常識點:

public class SendEmailDemo {

  public static void main(String[] args) throws Exception {

    //1. 上岸郵件客戶端(創立會話session)
    Properties prop = new Properties();
    prop.setProperty("mail.transport.protocol", "smtp");  
    //創立了session會話
    Session session = Session.getDefaultInstance(prop);
    //設置debug形式來調試發送信息
    session.setDebug(true);
    //創立一封郵件對象
    Message message = new MimeMessage(session);
    //寫信
    message.setSubject("迎接拜訪我的CSDN博客主頁!");
    //注釋內容
    message.setContent("迎接拜訪我的CSDN博客主頁:http://blog.csdn.net/eson_15"
        + ",麼麼哒~", "text/html;charset=utf-8");
    //附件人地址
    message.setFrom(new InternetAddress("[email protected]"));
    Transport transport = session.getTransport();
    //鏈接郵件辦事器的認證信息
    transport.connect("smtp.163.com", "nishengwus", "xxxxx暗碼");
    // 設置收件人地址,並發送郵件
    transport.sendMessage(message, new InternetAddress[]{new InternetAddress("[email protected]")});
    transport.close();
  }
}

  下面就是用java發送郵件的流程:創立會話–>封裝郵件信息–>設置發件人地址–>設置收件人地址–>發送。

2. 封裝發送郵件功效

  回想了java發送郵件的辦法後,我們將這個流程封裝到一個對象類中,新建一個EmailUtilImpl完成類,完成後 抽取成EmailUtil接口,以下:

//抽取後的EmailUtil接口
public interface EmailUtil {

  public abstract void sendEmail(String emailAddress, String id);

}

//EmailUtilImpl完成類
@Component("emailUtil")
public class EmailUtilImpl implements EmailUtil {
  //參數吸收顧客的郵箱地址和定單編號
  @Override
  public void sendEmail(String emailAddress, String id) {
    // 1. 上岸郵件客戶端(創立會話session)
    Properties prop = new Properties();
    Session session = null;
    Message message = null;
    Transport transport = null;
    try {
      prop.setProperty("mail.transport.protocol", "smtp");
      // 創立了session會話
      session = Session.getDefaultInstance(prop);
      // 設置debug形式來調試發送信息
      session.setDebug(true);
      // 創立一封郵件對象
      message = new MimeMessage(session);
      // 寫信
      message.setSubject("網上商城定單反應");
      // 注釋內容
      message.setContent("顧客您好,迎接您惠顧網上商城,定單" + id + "已付出勝利!", "text/html;charset=utf-8");
      // 附件人地址
      message.setFrom(new InternetAddress("[email protected]"));      
      transport = session.getTransport();
      // 鏈接郵件辦事器的認證信息
      transport.connect("smtp.sina.com", "soft03_test", "soft03_test");

      // 設置收件人地址,並發送郵件
      transport.sendMessage(message, new InternetAddress[] { new InternetAddress(emailAddress) });
    } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException(e);
    } finally {     
      try {
        transport.close();
      } catch (MessagingException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
      }
    }
  }

3. 完美payAction

  完成了對象類的封裝,接上去我們把該對象類放到BaseAction中,經由過程@Resource注解注入出去,供Action應用,上面我們完美後面的payAction中的backBank()辦法,以下:

@Controller("payAction")
@Scope("prototype")
public class PayAction extends BaseAction<Object> implements ParameterAware {

  //省略不相干的代碼……

  public void backBank() {
    BackData backData = (BackData)model;
    System.out.println(model);
    boolean isOK = payService.checkBackData(backData);
    if(isOK) {
      //1. 更新定單狀況,參數是本身依據數據庫中的情形傳出來的,用來測試
      forderService.updateStatusById(Integer.valueOf(201605006), 2);
      //2. 依據user郵箱地址,發送郵件
      String emailAddress = backData.getR8_MP().split(",")[0];
      emailUtil.sendEmail(emailAddress, backData.getR6_Order());
      //3. 發送手機短信,下一篇博客來引見發送短信的功效
      System.out.println("----success!!----");
    } else {
      System.out.println("----false!!!----");
    }
  }
}

  從易寶那裡前往的信息中r6_Order參數中保留的是定單的編號,r8_MP參數中是用戶的郵箱和德律風,第一個是郵箱第二個是德律風,用逗號離隔了,所以我們起首要獲得用戶的郵箱地址,然後再來發送郵件。好了,付出完成後給用戶發送郵件的功效就完成了。

原文鏈接:http://blog.csdn.net/eson_15/article/details/51475046

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved