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

java發(fā)送郵件的具體實(shí)現(xiàn)

 更新時(shí)間:2013年09月15日 14:54:53   作者:  
這篇文章介紹了java發(fā)送郵件的具體實(shí)現(xiàn),有需要的朋友可以參考一下

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

復(fù)制代碼 代碼如下:

package com.mzule.simplemail;

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

/**
* 服務(wù)器郵箱登錄驗(yàn)證
*
* @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;
}

}

  調(diào)用上面的郵箱發(fā)送器,可以構(gòu)建一個(gè)工廠類,工廠類可以封裝創(chuàng)建的過程,所以通過讀配置文件獲取郵箱用戶名,密碼都會(huì)變得十分方便。下面的代碼是我在寫觀察者模式的時(shí)候?qū)懙?,只是?jiǎn)單演示了工廠類。

復(fù)制代碼 代碼如下:

package com.mzule.dp.observer.factory;

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

/**
* 發(fā)件箱工廠
*
* @author MZULE
*
*/
public class MailSenderFactory {

/**
* 服務(wù)郵箱
*/
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;
}

}

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

復(fù)制代碼 代碼如下:

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) {
// 發(fā)送郵件
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, "價(jià)格變動(dòng)", "您關(guān)注的物品"
+ product.getName() + "降價(jià)了,由"
+ product.getPrice() + "元降到" + price + "元,降幅達(dá)"
+ decrease + "元人民幣。趕快購(gòu)物吧。");
}
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}

}

相關(guān)文章

  • 使用Java實(shí)現(xiàn)簡(jiǎn)單串口通信

    使用Java實(shí)現(xiàn)簡(jiǎn)單串口通信

    這篇文章主要介紹了使用Java實(shí)現(xiàn)簡(jiǎn)單串口通信,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何實(shí)現(xiàn)Java中一個(gè)簡(jiǎn)單的LinkedList

    如何實(shí)現(xiàn)Java中一個(gè)簡(jiǎn)單的LinkedList

    LinkedList與ArrayList都是List接口的具體實(shí)現(xiàn)類。下面將介紹如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的LinkedList,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 詳解Java從工廠方法模式到 IOC/DI思想

    詳解Java從工廠方法模式到 IOC/DI思想

    工廠方法(Factory Method)模式的意義是定義一個(gè)創(chuàng)建產(chǎn)品對(duì)象的工廠接口,將實(shí)際創(chuàng)建工作推遲到子類當(dāng)中。核心工廠類不再負(fù)責(zé)產(chǎn)品的創(chuàng)建,這樣核心類成為一個(gè)抽象工廠角色,僅負(fù)責(zé)具體工廠子類必須實(shí)現(xiàn)的接口。本文將詳細(xì)介紹Java從工廠方法模式到 IOC/DI思想。
    2021-06-06
  • JAVA8妙用Optional解決判斷Null為空的問題方法

    JAVA8妙用Optional解決判斷Null為空的問題方法

    本文主要介紹了JAVA8妙用Optional解決判斷Null為空的問題方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • spring mail借助qq郵箱服務(wù)器發(fā)送郵件

    spring mail借助qq郵箱服務(wù)器發(fā)送郵件

    這篇文章主要介紹了spring mail借助qq郵箱服務(wù)器發(fā)送郵件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 一文帶你徹底剖析Java中Synchronized原理

    一文帶你徹底剖析Java中Synchronized原理

    Synchronized是Java中的隱式鎖,它的獲取鎖和釋放鎖都是隱式的,完全交由JVM幫助我們操作,在了解Synchronized關(guān)鍵字之前,首先要學(xué)習(xí)的知識(shí)點(diǎn)就是Java的對(duì)象結(jié)構(gòu),本文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 關(guān)于synchronized、volatile、ReentrantLock的區(qū)別與對(duì)比

    關(guān)于synchronized、volatile、ReentrantLock的區(qū)別與對(duì)比

    這篇文章主要介紹了關(guān)于synchronized、volatile、ReentrantLock的區(qū)別與對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Mybatis plus的自動(dòng)填充與樂觀鎖的實(shí)例詳解(springboot)

    Mybatis plus的自動(dòng)填充與樂觀鎖的實(shí)例詳解(springboot)

    這篇文章主要介紹了Mybatis plus的自動(dòng)填充與樂觀鎖的實(shí)例詳解(springboot),本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 淺談java封裝

    淺談java封裝

    封裝封裝就是將屬性私有化,提供公有的方法訪問私有的屬性。*實(shí)現(xiàn)封裝的步驟:(1)修改屬性的可見性來(lái)限制對(duì)屬性的訪問。(2)為每個(gè)屬性創(chuàng)建一對(duì)賦值方法和取值方法,用于對(duì)這些屬性的訪問。(3)在賦值和取值方法中,加入對(duì)屬性的存取限制。
    2015-03-03
  • java控制臺(tái)輸出版多人聊天室

    java控制臺(tái)輸出版多人聊天室

    這篇文章主要為大家詳細(xì)介紹了java控制臺(tái)輸出版多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論