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

利用java實(shí)現(xiàn)郵箱群發(fā)功能

 更新時(shí)間:2017年12月04日 15:34:51   作者:阿遵  
這篇文章主要為大家詳細(xì)介紹了利用java實(shí)現(xiàn)郵箱群發(fā)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)郵箱群發(fā)的具體代碼,供大家參考,具體內(nèi)容如下

近來(lái)無(wú)事,在網(wǎng)上看了一些大牛文章,其中看到一篇比較好的,分享給大家!

下面是代碼

郵箱實(shí)體

import java.io.Serializable;  
/** 
 * 郵件實(shí)體類(lèi) 
 */  
public class Mail implements Serializable {  
 /** 
  * 序列號(hào) 
  */ 
 private static final long serialVersionUID = -3562218214168975242L; 
 /** 
  * 郵件編碼s 
  */ 
 public static final String ENCODEING = "UTF-8";  
 /** 
  * 服務(wù)器地址 
  */ 
 private String host; 
 /** 
  * 服務(wù)器端口號(hào) 
  */ 
 private String portNumber;  
 /** 
  * 發(fā)件人的郵箱 
  */ 
 private String sender;  
 /** 
  * 收件人的郵箱 
  */  
 private String receiver;  
 /** 
  * 發(fā)件人昵稱(chēng) 
  */  
 private String name;  
 /** 
  * 賬號(hào) 
  */  
 private String username;  
 /** 
  * 密碼 
  */  
 private String password;  
 /** 
  * 主題 
  */ 
 private String subject; 
 /** 
  * 信息(支持HTML) 
  */ 
 private String message;  
  
 public String getHost() {  
  return host;  
 }  
  
 public void setHost(String host) {  
  this.host = host;  
 }  
  
 public String getSender() {  
  return sender;  
 }  
  
 public String getPortNumber() { 
  return portNumber; 
 } 
 
 public void setPortNumber(String portNumber) { 
  this.portNumber = portNumber; 
 } 
 
 public void setSender(String sender) {  
  this.sender = sender;  
 }  
  
 public String getReceiver() {  
  return receiver;  
 }  
  
 public void setReceiver(String receiver) {  
  this.receiver = receiver;  
 }  
  
 public String getName() {  
  return name;  
 }  
  
 public void setName(String name) {  
  this.name = name;  
 }  
  
 public String getUsername() {  
  return username;  
 }  
  
 public void setUsername(String username) {  
  this.username = username;  
 }  
  
 public String getPassword() {  
  return password;  
 }  
  
 public void setPassword(String password) {  
  this.password = password;  
 }  
  
 public String getSubject() {  
  return subject;  
 }  
  
 public void setSubject(String subject) {  
  this.subject = subject;  
 }  
  
 public String getMessage() {  
  return message;  
 }  
  
 public void setMessage(String message) {  
  this.message = message;  
 }  
  
} 

 工具類(lèi)

import org.apache.commons.mail.EmailException; 
import org.apache.commons.mail.HtmlEmail; 
 
public class MailUtil {  
  
 public boolean send(Mail mail) {  
  //發(fā)送email對(duì)象 
  HtmlEmail email = new HtmlEmail();  
  try {  
   //這里是SMTP發(fā)送服務(wù)器的名字 
   email.setHostName(mail.getHost());  
   //端口號(hào)不為空時(shí),用戶自定義的端口號(hào)為SMTP發(fā)送服務(wù)器端口號(hào) 
   if (!"".equals(mail.getPortNumber())) { 
    email.setSSLOnConnect(true);  
    email.setSslSmtpPort(mail.getPortNumber()); 
   } 
   //字符編碼集的設(shè)置  
   email.setCharset(Mail.ENCODEING);  
   //收件人的郵箱  
   email.addTo(mail.getReceiver());  
   //發(fā)送人的郵箱  
   email.setFrom(mail.getSender(), mail.getName());  
   // 如果需要認(rèn)證信息的話,設(shè)置認(rèn)證:用戶名-密碼。分別為發(fā)件人在郵件服務(wù)器上的注冊(cè)名稱(chēng)和密碼  
   email.setAuthentication(mail.getUsername(), mail.getPassword());  
   // 要發(fā)送的郵件主題  
   email.setSubject(mail.getSubject());  
   // 要發(fā)送的信息,由于使用了HtmlEmail,可以在郵件內(nèi)容中使用HTML標(biāo)簽  
   email.setMsg(mail.getMessage());  
   // 發(fā)送  
   email.send();  
   return true;  
  } catch (EmailException e) {  
   e.printStackTrace();  
   return false;  
  }  
 }  
} 

 開(kāi)始

import java.util.Random; 
 
 
public class SimpleEmailClient { 
 
 public static void main(String[] args) throws InterruptedException { 
  Mail mail = new Mail(); 
  mail.setHost("smtp.qq.com"); // 設(shè)置郵件服務(wù)器,如果不用QQ郵箱的,自己找找看相關(guān)的 
  mail.setPortNumber("465"); // 設(shè)置郵件服務(wù)器端口號(hào),默認(rèn)25 
  mail.setSender("xxxx@qq.com"); // 發(fā)送人 
  mail.setName("楊大俠"); // 發(fā)送人昵稱(chēng) 
  mail.setSubject("好吃美味"); //發(fā)送主題 
  mail.setMessage("好吃美味"); //發(fā)送內(nèi)容 
  mail.setUsername("xxxx@qq.com"); // 登錄賬號(hào),一般都是和郵箱名一樣 
  mail.setPassword("********"); // QQ郵箱登錄第三方客戶端時(shí),密碼框請(qǐng)輸入“授權(quán)碼”進(jìn)行驗(yàn)證。其他的密碼具體查看郵件服務(wù)器的說(shuō)明 
   
  for (int i = 0; i < 1000; i++) { 
    
   //Thread.sleep(2000); 
    
   int max1 = 99999; 
   int min1 = 10000; 
   Random random = new Random(); 
   int f = random.nextInt(max1)%(max1-min1+1) + min1; 
    
   int max2 = 9999; 
   int min2 = 1000; 
   Random random2 = new Random(); 
   int s = random2.nextInt(max2)%(max2-min2+1) + min2; 
   String account = "" + f + "" + s + "@qq.com"; 
    
   mail.setReceiver(account); // 接收人 
   System.out.println(account); 
   if (new MailUtil().send(mail)) { 
    System.out.println("發(fā)送成功"); 
   } else { 
    System.out.println("發(fā)送失敗"); 
   } 
  } 
   
 } 
} 

for循環(huán)是為了群發(fā)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA 非常重要的一些設(shè)置項(xiàng)(一連串的問(wèn)題差點(diǎn)讓我重新用回 Eclipse)

    IDEA 非常重要的一些設(shè)置項(xiàng)(一連串的問(wèn)題差點(diǎn)讓我重新用回 Eclipse)

    這篇文章主要介紹了IDEA 非常重要的一些設(shè)置項(xiàng)(一連串的問(wèn)題差點(diǎn)讓我重新用回 Eclipse),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java泛型常用通配符實(shí)例解析

    java泛型常用通配符實(shí)例解析

    這篇文章主要介紹了java泛型常用通配符實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • MyBatis還是JPA?終于有答案了

    MyBatis還是JPA?終于有答案了

    這篇文章主要介紹了MyBatis還是JPA,中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java實(shí)現(xiàn)簡(jiǎn)單登陸界面

    Java實(shí)現(xiàn)簡(jiǎn)單登陸界面

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單登陸界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 零基礎(chǔ)入門(mén)學(xué)習(xí)——Spring Boot注解(一)

    零基礎(chǔ)入門(mén)學(xué)習(xí)——Spring Boot注解(一)

    這篇文章主要介紹了Spring Boot注解學(xué)習(xí)(一)要點(diǎn),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-05-05
  • SpringBoot項(xiàng)目啟動(dòng)時(shí)如何讀取配置以及初始化資源

    SpringBoot項(xiàng)目啟動(dòng)時(shí)如何讀取配置以及初始化資源

    這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目啟動(dòng)時(shí)如何讀取配置以及初始化資源的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Spring Boot簡(jiǎn)單實(shí)現(xiàn)快速搭建圖解

    Spring Boot簡(jiǎn)單實(shí)現(xiàn)快速搭建圖解

    這篇文章主要介紹了Spring Boot簡(jiǎn)單實(shí)現(xiàn)快速搭建圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用案例詳解

    JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用案例詳解

    通過(guò) JdbcTemplate 直接執(zhí)行 SQL 語(yǔ)句,結(jié)合源碼動(dòng)態(tài)編譯即可方便實(shí)現(xiàn)動(dòng)態(tài)修改代碼邏輯的效果,這篇文章主要介紹了JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用,需要的朋友可以參考下
    2023-09-09
  • 基于SpringBoot和Vue實(shí)現(xiàn)分片上傳系統(tǒng)

    基于SpringBoot和Vue實(shí)現(xiàn)分片上傳系統(tǒng)

    最近想做一個(gè)關(guān)于文件上傳的個(gè)人小網(wǎng)盤(pán),一開(kāi)始嘗試使用了OSS的方案,但是該方案對(duì)于大文件來(lái)說(shuō)并不友好,所以開(kāi)始嘗試分片上傳方案的探索,接下來(lái)小編給大家詳細(xì)的介紹一下如何基于SpringBoot和Vue實(shí)現(xiàn)分片上傳系統(tǒng),需要的朋友可以參考下
    2023-12-12
  • Java并發(fā)編程之阻塞隊(duì)列詳解

    Java并發(fā)編程之阻塞隊(duì)列詳解

    這篇文章主要為大家詳細(xì)介紹了Java并發(fā)編程之阻塞隊(duì)列,什么是阻塞隊(duì)列?主要的阻塞隊(duì)列及其方法介紹,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評(píng)論