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

JavaMail郵件發(fā)送機制詳解

 更新時間:2019年11月21日 10:31:05   作者:Mr小林  
這篇文章主要介紹了JavaMail郵件發(fā)送機制詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了JavaMail郵件發(fā)送機制詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

概念

JavaMail,顧名思義,提供給開發(fā)者處理電子郵件相關(guān)的編程接口。它是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。我們可以基于JavaMail開發(fā)出類似于Microsoft Outlook的應(yīng)用程序。

應(yīng)用場景

一般在系統(tǒng)的注冊模塊,當用戶填入注冊信息的郵箱時,點擊保存。系統(tǒng)根據(jù)用戶的信息會自動給用戶發(fā)送一封郵件,上面有用戶的基本信息和注意事項,也可以用此方法實現(xiàn)用戶的激活。

代碼實現(xiàn)

普通方式一

1.首先引入javaMail的mail坐標即jar包

jar包:mail:1.4.1

坐標:

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>

2.測試代碼實現(xiàn)

首先引入junit 測試包

package mail.test;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

import org.junit.Test;

public class Mail01Test {

  @Test
  public void testJavaMail() throws Exception{
    //1.設(shè)置郵件的一些信息
    Properties props = new Properties();
    //發(fā)送郵件的服務(wù)器地址
    props.put("mail.smtp.host", "smtp.163.com");// stmp.qq.com  smtp.sina.com
    props.put("mail.smtp.auth", "true");

    //2.創(chuàng)建Session對象
    Session session =Session.getInstance(props);

    //3.創(chuàng)建出MimeMessage,郵件的消息對象
    MimeMessage message = new MimeMessage(session);

    //4.設(shè)置發(fā)件人
    Address fromAddr = new InternetAddress("發(fā)件人郵箱");
    message.setFrom(fromAddr);

    //5.設(shè)置收件人
    Address toAddr = new InternetAddress("收件人郵箱");
    message.setRecipient(RecipientType.TO, toAddr);

    //6.設(shè)置郵件的主題
    message.setSubject("項目進展順序");

    //7.設(shè)置郵件的正文
    message.setText("項目進展順序,所有兄弟們都非常努力,老板今天可以請吃飯");
    message.saveChanges();//保存更新

    //8.得到火箭
    Transport transport = session.getTransport("smtp");
    transport.connect("smtp.163.com", "發(fā)件人郵箱", "發(fā)件人密碼");//設(shè)置了火箭的發(fā)射地址
    transport.sendMessage(message, message.getAllRecipients());//發(fā)送具體內(nèi)容及接收人   
    transport.close();
  }

}

普通方式二

方式二可以帶附件和圖片

1.測試代碼:

package mail.test;
import java.io.File;
import javax.mail.internet.MimeMessage;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

public class Mail03Test {

  @Test
  public void testJavaMail() throws Exception{
    ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-mail.xml");

    //得到發(fā)送器
    JavaMailSender mailSender = (JavaMailSender) ac.getBean("mailSender");

    //得到一個MimeMessage對象
    MimeMessage message = mailSender.createMimeMessage();

    //產(chǎn)生出一個MimeMessageHelper helper 
    MimeMessageHelper helper = new MimeMessageHelper(message, true);//工具類本質(zhì)是操作message消息  true代表可以帶附件,圖片

    //3.使用helper工具類,設(shè)置郵件的發(fā)送者,接收者,主題,正文
    helper.setFrom("發(fā)送郵箱");
    helper.setTo("接收郵箱");
    helper.setSubject("發(fā)送圖片和附件");
    helper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1><a href=http://www.baidu.com>baidu</a><img src='cid:image' /></body></html>", true);

    //指定cid的取值
    FileSystemResource imgResource = new FileSystemResource(new File("E:/01分配權(quán)限原理分析.png"));
    helper.addInline("image", imgResource);

    //帶附件
    FileSystemResource fileResource = new FileSystemResource(new File("E:/javamail1_4_4.zip"));
    helper.addAttachment("javamail1_4_4.zip", fileResource);

    //發(fā)送
    mailSender.send(message);

  }
}

2.applicationContext-mail.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  xmlns:p="http://www.springframework.org/schema/p" 
  xmlns:context="http://www.springframework.org/schema/context"  
  xmlns:tx="http://www.springframework.org/schema/tx" 
  xmlns:aop="http://www.springframework.org/schema/aop" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  http://www.springframework.org/schema/beans/spring-beans.xsd  
  http://www.springframework.org/schema/aop  
  http://www.springframework.org/schema/aop/spring-aop.xsd  
  http://www.springframework.org/schema/tx  
  http://www.springframework.org/schema/tx/spring-tx.xsd  
  http://www.springframework.org/schema/context  
  http://www.springframework.org/schema/context/spring-context.xsd">

  <description>JavaMail的配置文件</description>
  <!-- 加載mail.properties配置文件 -->
  <context:property-placeholder location="classpath:mail.properties"/>


  <!-- 簡單消息對象創(chuàng)建 -->
  <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
     <property name="from" value="${mail.from}"></property>
  </bean>

  <!-- 2.創(chuàng)建發(fā)送器 -->  
  <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
     <property name="host" value="${mail.host}"></property>
     <property name="username" value="${mail.username}"></property>
     <property name="password" value="${mail.password}"></property>
     <property name="defaultEncoding" value="UTF-8"></property>
     <property name="javaMailProperties">
      <props>
         <prop key="mail.smtp.auth">true</prop>
         <prop key="mail.debug">true</prop>
         <prop key="mail.smtp.timeout">0</prop>
      </props>
     </property>
  </bean>
</beans>

3.mail.properties文件:

mail.host=smtp.163.com
mail.username=@前面的用戶名
mail.password=密碼
mail.from=發(fā)件人郵箱全拼

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 通過實例解析POJO和JavaBean的區(qū)別

    通過實例解析POJO和JavaBean的區(qū)別

    這篇文章主要介紹了通過實例解析POJO和JavaBean的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • JAVA多線程的使用場景與注意事項總結(jié)

    JAVA多線程的使用場景與注意事項總結(jié)

    這篇文章主要給大家介紹了關(guān)于JAVA多線程的使用場景與注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • springboot集成es詳解

    springboot集成es詳解

    這篇文章主要介紹了springboot集成es,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Spring MVC核心組件與請求處理流程分析

    Spring MVC核心組件與請求處理流程分析

    該文章詳細介紹了SpringMVC的請求處理流程,從Filter鏈處理開始,經(jīng)過DispatcherServlet、HandlerMapping、HandlerAdapter、攔截器(前置處理、后置處理、完成處理)到視圖渲染,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • IntelliJ IDEA 的使用界面圖文教程

    IntelliJ IDEA 的使用界面圖文教程

    這篇文章主要介紹了IntelliJ IDEA 的使用界面圖文教程,需要的朋友可以參考下
    2018-10-10
  • 妙用Java8中的Function接口消滅if...else

    妙用Java8中的Function接口消滅if...else

    在開發(fā)過程中經(jīng)常會使用if...else...進行判斷拋出異常、分支處理等操作。這些if...else...充斥在代碼中嚴重影響了代碼代碼的美觀,本文就妙用Java8中的Function接口消滅if...else,感興趣的可以了解一下
    2022-01-01
  • spring MVC cors跨域?qū)崿F(xiàn)源碼解析

    spring MVC cors跨域?qū)崿F(xiàn)源碼解析

    本文主要介紹了spring MVC cors跨域?qū)崿F(xiàn)源碼解析。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Spring底層核心源碼原理解析

    Spring底層核心源碼原理解析

    這篇文章主要介紹了Spring底層核心源碼原理解析,當在某個方法上加了@Transactional注解后,就表示該方法在調(diào)用時會開啟Spring事務(wù),而這個方法所在的類所對應(yīng)的Bean對象會是該類的代理對象,需要的朋友可以參考下
    2023-09-09
  • Java中解壓縮文件的方法詳解(通用)

    Java中解壓縮文件的方法詳解(通用)

    在軟件開發(fā)和數(shù)據(jù)處理領(lǐng)域,文件的解壓縮和壓縮是常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于Java中解壓縮文件的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • spring boot利用docker構(gòu)建gradle項目的實現(xiàn)步驟

    spring boot利用docker構(gòu)建gradle項目的實現(xiàn)步驟

    這篇文章主要給大家介紹了關(guān)于spring boot利用docker構(gòu)建gradle項目的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2018-05-05

最新評論

西林县| 若尔盖县| 宁波市| 吉木乃县| 高唐县| 江安县| 弥勒县| 垫江县| 天等县| 余江县| 石门县| 义马市| 黑龙江省| 景东| 高雄县| 德保县| 和林格尔县| 都昌县| 新乡市| 杨浦区| 科技| 鹿邑县| 保定市| 陇川县| 历史| 沁阳市| 双柏县| 库伦旗| 莒南县| 内江市| 延安市| 根河市| 铁岭县| 兴国县| 平潭县| 内江市| 梁平县| 赫章县| 龙陵县| 延长县| 南溪县|