一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - Java教程 - java發送郵件的具體實現

java發送郵件的具體實現

2019-10-14 14:04java之家 Java教程

這篇文章介紹了java發送郵件的具體實現,有需要的朋友可以參考一下

首先是繼承自javax.mail.Authenticator的一個具體類。getPasswordAuthentication()方法也就是構建一個PasswordAuthentication對象并返回,有點費解JAVA Mail這樣的設計意圖,可能javax.mail.Authenticator為我們提供了附加的保證安全的驗證措施吧。

 

復制代碼代碼如下:


package com.mzule.simplemail;

 

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
* 服務器郵箱登錄驗證

* @author MZULE

*/
public class MailAuthenticator extends Authenticator {

/**
* 用戶名(登錄郵箱)
*/
private String username;
/**
* 密碼
*/
private String password;

/**
* 初始化郵箱和密碼

* @param username 郵箱
* @param password 密碼
*/
public MailAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}

String getPassword() {
return password;
}

@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}

String getUsername() {
return username;
}

public void setPassword(String password) {
this.password = password;
}

public void setUsername(String username) {
this.username = username;
}

}

 

 

  調用上面的郵箱發送器,可以構建一個工廠類,工廠類可以封裝創建的過程,所以通過讀配置文件獲取郵箱用戶名,密碼都會變得十分方便。下面的代碼是我在寫觀察者模式的時候寫的,只是簡單演示了工廠類。

 

復制代碼代碼如下:


package com.mzule.dp.observer.factory;

 

import com.mzule.dp.observer.constant.MailSenderType;
import com.mzule.simplemail.SimpleMailSender;

/**
* 發件箱工廠

* @author MZULE

*/
public class MailSenderFactory {

/**
* 服務郵箱
*/
private static SimpleMailSender serviceSms = null;

/**
* 獲取郵箱

* @param type 郵箱類型
* @return 符合類型的郵箱
*/
public static SimpleMailSender getSender(MailSenderType type) {
if (type == MailSenderType.SERVICE) {
if (serviceSms == null) {
serviceSms = new SimpleMailSender("[email protected]",
"hidden");
}
return serviceSms;
}
return null;
}

}

 

 

  發送郵件,還是觀察者模式DEMO里面的代碼,呼呼。

 

復制代碼代碼如下:


package com.mzule.dp.observer.observer;

 

import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;

import javax.mail.MessagingException;
import javax.mail.internet.AddressException;

import com.mzule.dp.observer.constant.MailSenderType;
import com.mzule.dp.observer.factory.MailSenderFactory;
import com.mzule.dp.observer.po.Product;
import com.mzule.simplemail.SimpleMailSender;

public class ProductPriceObserver implements Observer {

@Override
public void update(Observable obj, Object arg) {
Product product = null;
if (obj instanceof Product) {
product = (Product) obj;
}
if (arg instanceof Float) {
Float price = (Float) arg;
Float decrease = product.getPrice() - price;
if (decrease > 0) {
// 發送郵件
SimpleMailSender sms = MailSenderFactory
.getSender(MailSenderType.SERVICE);
List<String> recipients = new ArrayList<String>();
recipients.add("[email protected]");
recipients.add("[email protected]");
try {
for (String recipient : recipients) {
sms.send(recipient, "價格變動", "您關注的物品"
+ product.getName() + "降價了,由"
+ product.getPrice() + "元降到" + price + "元,降幅達"
+ decrease + "元人民幣。趕快購物吧。");
}
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}

}

 

延伸 · 閱讀

精彩推薦
  • Java教程java 中鎖的性能提高辦法

    java 中鎖的性能提高辦法

    這篇文章主要介紹了java 中鎖的性能提高辦法的相關資料,需要的朋友可以參考下...

    Java之家3092020-08-13
  • Java教程JavaWeb 實現驗證碼功能(demo)

    JavaWeb 實現驗證碼功能(demo)

    在 WEB-APP 中一般應用于:登錄、注冊、買某票、秒殺等場景,大家都接觸過這個驗證碼操作,今天小編通過實例代碼給大家講解javaweb實現驗證碼功能,需要...

    java教程網12832020-08-05
  • Java教程淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    這篇文章主要介紹了Java(SpringBoot)基于zookeeper的分布式鎖實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    LJY_SUPER5742021-07-21
  • Java教程springboot ehcache 配置使用方法代碼詳解

    springboot ehcache 配置使用方法代碼詳解

    EhCache是一個比較成熟的Java緩存框架,Springboot對ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也簡易,今天給大家分享spri...

    m1719309529412912021-09-16
  • Java教程SpringBoot引入Thymeleaf的實現方法

    SpringBoot引入Thymeleaf的實現方法

    這篇文章主要介紹了SpringBoot引入Thymeleaf的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Bobby6472021-07-28
  • Java教程Java list.remove( )方法注意事項

    Java list.remove( )方法注意事項

    這篇文章主要介紹了Java list.remove( )方法注意事項,非常簡單易懂,需要的朋友可以參考下...

    妖久9552021-05-25
  • Java教程Java之Springcloud Feign組件詳解

    Java之Springcloud Feign組件詳解

    這篇文章主要介紹了Java之Springcloud Feign組件詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    深情以改10322021-11-12
  • Java教程JAVA中通過自定義注解進行數據驗證的方法

    JAVA中通過自定義注解進行數據驗證的方法

    java 自定義注解驗證可自己添加所需要的注解,下面這篇文章主要給大家介紹了關于JAVA中通過自定義注解進行數據驗證的相關資料,文中通過示例代碼介紹...

    Decouple6362021-05-25
主站蜘蛛池模板: 接吻吃胸摸下面啪啪教程 | yellow最新视频2019 | 好猛好紧好硬使劲好大刺激视频 | 亚洲欧美视频在线播放 | 国产资源中文字幕 | 天天白天天谢天天啦 | 5g影院天天影院天天爽影院网站 | 男人边吃奶边做好爽视频免费 | 肉文高h调教 | 免费高清在线 | 皇上撞着太子妃的秘密小说 | 好大好深好涨好烫还要 | 国产亚洲精品看片在线观看 | 国产v视频 | 91制片厂制作果冻传媒八夷 | 777午夜精品免费播放 | 国产视频自拍一区 | 四虎在线最新地址公告 | 人成午夜免费大片在线观看 | 女人把私密部位张开让男人桶 | 精品亚洲456在线播放 | 天美传媒tm0065 | 精品国产三级av在线 | 国产最新精品视频 | 亚洲精品二三区伊人久久 | 亚洲春黄在线观看 | 精品国产91久久久久久久 | 美女漫画网| 青草午夜精品视频在线观看 | 手机在线伦理片 | 91夜夜操 | 国产成人高清精品免费5388密 | 视频大全在线观看网址 | 国产免费不卡视频 | 日韩视频免费一区二区三区 | 亚洲天堂色图 | 欧美丰满大乳大屁在线观看股 | 教室里的激情电影 | 蜜桃视频一区二区 | 午夜综合 | 风间由美理论片在线观看 |