最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)郵件發(fā)送詳解

 更新時(shí)間:2020年03月30日 08:57:46   作者:瑾年丶深藍(lán)  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)郵件發(fā)送示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

java實(shí)現(xiàn)郵件發(fā)送邏輯并不復(fù)雜(不包含附件),只是根據(jù)官方調(diào)用官方提供的sdk,首先需要引入maven依賴:

javax.mail

<dependency >
  <groupId >com.sun.mail</groupId >
  <artifactId >javax.mail</artifactId >
  <version >1.6.0</version >
</dependency >

然后構(gòu)造發(fā)送郵件所需的實(shí)體類(lèi)

package com.email;

import java.io.Serializable;

/**
 * @Author zjt
 * @Date 2019年03月07 10:37
 */
public class EmailEntity implements Serializable {
 private static final long serialVersionUID = 1L;
 //郵箱服務(wù)器地址
 private String host;
 //主機(jī)端口
 private Integer port;
 //發(fā)送者的郵箱賬號(hào)
 private String userName;
 //發(fā)送者的密碼
 private String password;
 //發(fā)送者的郵箱地址
 private String fromAddress;
 //接收者的郵箱地址
 private String toAddress;
 //設(shè)置郵件主題
 private String subject;
 //設(shè)置郵件內(nèi)容
 private String context;
 //設(shè)置郵件類(lèi)型
 private String contextType;

 public String getHost() {
  return host;
 }

 public void setHost(String host) {
  this.host = host;
 }

 public Integer getPort() {
  return port;
 }

 public void setPort(Integer port) {
  this.port = port;
 }

 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 getFromAddress() {
  return fromAddress;
 }

 public void setFromAddress(String fromAddress) {
  this.fromAddress = fromAddress;
 }

 public String getToAddress() {
  return toAddress;
 }

 public void setToAddress(String toAddress) {
  this.toAddress = toAddress;
 }

 public String getSubject() {
  return subject;
 }

 public void setSubject(String subject) {
  this.subject = subject;
 }

 public String getContext() {
  return context;
 }

 public void setContext(String context) {
  this.context = context;
 }

 public String getContextType() {
  return contextType;
 }

 public void setContextType(String contextType) {
  this.contextType = contextType;
 }
}

其次,編寫(xiě)調(diào)用郵件發(fā)送方法

package com.email;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;

/**
 * @Author zjt
 * @Date 2019年03月07 10:38
 */
public class EmailSend {
 
 public static boolean EmailSendTest(EmailEntity emailEntity){
  try {
   //配置文件
   Properties properties = new Properties();
   properties.put("mail.smtp.auth", "true");
   properties.put("mail.smtp.host", emailEntity.getHost());
   properties.put("mail.smtp.port", 25);
   properties.put("mail.smtp.starrttls.enable", "true");
   //創(chuàng)建會(huì)話
   VerifyEmail verifyEmail = new VerifyEmail(emailEntity.getUserName(), emailEntity.getPassword());
   Session mailSession = Session.getInstance(properties, verifyEmail);
   mailSession.setDebug(true);
   //創(chuàng)建信息對(duì)象
   Message message = new MimeMessage(mailSession);
   InternetAddress from = new InternetAddress(emailEntity.getFromAddress());
   InternetAddress to = new InternetAddress(emailEntity.getToAddress());
   //設(shè)置郵件信息的來(lái)源
   message.setFrom(from);
   //設(shè)置郵件的接收者
   message.setRecipient(MimeMessage.RecipientType.TO, to);
   message.setSubject(emailEntity.getSubject());
   //設(shè)置郵件發(fā)送日期
   message.setSentDate(new Date());
   //設(shè)置郵件內(nèi)容
   message.setContent(emailEntity.getContext() , emailEntity.getContextType());
   message.saveChanges();
   //發(fā)送郵件
   Transport transport = mailSession.getTransport("smtp");
   transport.connect(emailEntity.getHost(), emailEntity.getUserName(), emailEntity.getPassword());
   System.out.println("發(fā)送:" + transport);
   transport.sendMessage(message, message.getAllRecipients());
   System.out.println("success");
   return true;
  } catch (MessagingException e) {
   e.printStackTrace();
   System.out.println("fial...");
   return false;

  }
 }
}

在調(diào)用郵件發(fā)送方法中使用到驗(yàn)證郵箱登錄名和密碼是否正確的方法

package com.email;

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

/**
 * 驗(yàn)證郵箱
 * @Author zjt
 * @Date 2019年03月07 10:32
 */
public class VerifyEmail extends Authenticator {
 //賬號(hào)
 private String userName;
 //密碼
 private String password;

 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;
 }

 //構(gòu)造方法
 public VerifyEmail(){
  super();
 }

 public VerifyEmail(String userName, String password) {
  super();
  this.userName = userName;
  this.password = password;
 }
 protected PasswordAuthentication getPasswordAuthentication(){

  return new PasswordAuthentication(userName, password);

 }
}

編寫(xiě)測(cè)試類(lèi),測(cè)試郵件發(fā)送方法是否成功

package com.email;

import org.junit.jupiter.api.Test;

/**
 * @Author zjt
 * @Date 2019年03月07 10:26
 */
public class TestEmail {

 @Test
 public void test(){
  EmailEntity email = new EmailEntity();
  email.setUserName("*******@163.com");
  email.setPassword("******");
  email.setHost("smtp.163.com");
  email.setPort(25);
  email.setFromAddress("******@163.com");
  email.setToAddress("******@163.com");
  email.setSubject("這是一封測(cè)試郵件!!!!");
  email.setContext("看看這是什么");
  email.setContextType("text/html;charset=utf-8");
  boolean flag = EmailSend.EmailSendTest(email);
  System.err.println("郵件發(fā)送結(jié)果=="+flag);
 }

}

在這里測(cè)試的163郵箱發(fā)送,需要注意的是,此處的密碼不是登錄密碼呦,而是設(shè)置中客戶端授權(quán)密碼呦。

執(zhí)行測(cè)試文件之后,可以登錄郵箱看到發(fā)送的結(jié)果

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

相關(guān)文章

  • Liquibase 在 Spring Boot 中的使用詳細(xì)介紹

    Liquibase 在 Spring Boot 中的使用詳細(xì)介紹

    Liquibase 提供了靈活的變更集機(jī)制,支持創(chuàng)建表、修改列、填充數(shù)據(jù)、回滾變更等多種操作,本文將通過(guò)多個(gè)豐富的示例,詳細(xì)講解如何在 Spring Boot項(xiàng)目中使用 Liquibase,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • java出現(xiàn)no XXX in java.library.path的解決及eclipse配置方式

    java出現(xiàn)no XXX in java.library.path的解決及eclipse配

    這篇文章主要介紹了java出現(xiàn)no XXX in java.library.path的解決及eclipse配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort

    Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • Java?NIO通信基礎(chǔ)示例詳解

    Java?NIO通信基礎(chǔ)示例詳解

    這篇文章主要為大家介紹了Java?NIO通信基礎(chǔ)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • java模擬post請(qǐng)求發(fā)送json的例子

    java模擬post請(qǐng)求發(fā)送json的例子

    本篇文章主要介紹了java模擬post請(qǐng)求發(fā)送json的例子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Redis Spring配置集群過(guò)程

    Redis Spring配置集群過(guò)程

    這篇文章主要介紹了Redis Spring配置集群過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • SpringBoot獲取maven打包時(shí)間的兩種方式

    SpringBoot獲取maven打包時(shí)間的兩種方式

    這篇文章主要介紹了SpringBoot獲取maven打包時(shí)間的兩種方式,文章通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Java 8中default方法能做什么?不能做什么?

    Java 8中default方法能做什么?不能做什么?

    這篇文章主要給大家介紹了關(guān)于Java 8中default方法能做什么?不能做什么?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • RocketMQ特性Broker存儲(chǔ)事務(wù)消息實(shí)現(xiàn)

    RocketMQ特性Broker存儲(chǔ)事務(wù)消息實(shí)現(xiàn)

    這篇文章主要為大家介紹了RocketMQ特性Broker存儲(chǔ)事務(wù)消息實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • JVM之方法返回地址詳解

    JVM之方法返回地址詳解

    這篇文章主要介紹了JVM之方法返回地址詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論

启东市| 廊坊市| 陕西省| 元氏县| 开原市| 蓬安县| 徐水县| 班玛县| 金溪县| 资中县| 微博| 简阳市| 时尚| 共和县| 新安县| 丁青县| 新余市| 邢台县| 宁武县| 壶关县| 山西省| 普兰县| 平顶山市| 建始县| 静安区| 共和县| 东兰县| 瓦房店市| 太原市| 阿坝县| 北流市| 高邮市| 太保市| 和田县| 宁波市| 安平县| 潼关县| 渝北区| 神木县| 大足县| 兰西县|