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

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

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("invisible@126.com",
"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("invisible@qq.com");
recipients.add("invisible@gmail.com");
try {
for (String recipient : recipients) {
sms.send(recipient, "價格變動", "您關注的物品"
+ product.getName() + "降價了,由"
+ product.getPrice() + "元降到" + price + "元,降幅達"
+ decrease + "元人民幣。趕快購物吧。");
}
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}

}

 

延伸 · 閱讀

精彩推薦
525
主站蜘蛛池模板: japanesexxxx24videofree | 日日夜av| xxxxhdvideosex| 色淫湿视频 | 精品亚洲视频在线 | 欧美大电影免费观看 | 国产精品视频成人 | 国内精品久久久久影院不卡 | 在线a亚洲视频播放在线观看 | 一区二区三区黄色 | 国产电影av在线 | 欧美一级高潮片免费的 | 欧美精品一区自拍a毛片在线视频 | 法国性xxx精品hd | 亚洲一区二区观看播放 | 精品黑人一区二区三区国语馆 | 免费黄色欧美视频 | 在线播放中文 | 中文字幕免费播放 | 在线观看国产免费视频 | 久久最新网址 | 高清国产福利 | 日本成人一二三区 | 香蕉久久久精品 | 精品久久久久久中文字幕 | 久久久久久久久久亚洲 | 日日天日日夜日日摸 | 视频一区二区久久 | 成人午夜免费在线观看 | 人禽l交免费视频 | 巨乳毛片| xxxxhd86日本护士hd | 国产一级淫片在线观看 | 成人在线网站 | 免费国产网站 | 国内精品伊人久久 | 一区二区久久精品66国产精品 | 成人视屏在线 | 一级免费黄色免费片 | 欧美综合在线观看视频 | 欧美成人激情 |