1. 程式人生 > >Spring boot 整合郵件服務

Spring boot 整合郵件服務

新增依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

新增配置檔案

stmp.host=smtp.163.com
stmp.account=xxxxxxx@163.com
stmp.password=*********
mail.smtp.auth=true
mail.smtp.timeout
=25000

建立實體

public class MyEmail {

    private String receiver;
    private String subject;
    private String text;
    private String content;

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public
String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getContent() { return
content; } public void setContent(String content) { this.content = content; } }

註冊Bean

@Component
public class EmailConfig {

    @Value("${stmp.host}")
    private String host;
    @Value("${stmp.account}")
    private String account;
    @Value("${stmp.password}")
    private String password;

    @Value("${mail.smtp.auth}")
    private String isAuth;
    @Value("${mail.smtp.timeout}")
    private String outTime;


    @Bean(name = "JavaMailSenderImpl")
    public JavaMailSenderImpl getMailSender(){
        JavaMailSenderImpl javaMailSender= new JavaMailSenderImpl();
        javaMailSender.setHost(host);
        javaMailSender.setUsername(account);
        javaMailSender.setPassword(password);
        Properties properties=new Properties();
        properties.put("mail.smtp.auth", isAuth);
        properties.put("mail.smtp.timeout", outTime);
        javaMailSender.setJavaMailProperties(properties);
        return javaMailSender;
    }

    public void sendSimpleMail(MyEmail email){
        SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
        simpleMailMessage.setFrom(account);

        String receiver=email.getReceiver();
        String receivers[]=receiver.split(";");
        simpleMailMessage.setTo(receivers);
        simpleMailMessage.setSubject(email.getSubject());
        simpleMailMessage.setText(email.getContent());
        getMailSender().send(simpleMailMessage);
    }
}

測試

@Autowired
EmailConfig mc;
@Test
public void testEmailConfig(){
    MyEmail email = new MyEmail();
    email.setReceiver("[email protected]");
    email.setContent("welcome ");
    email.setSubject("test");
    mc.sendSimpleMail(email);
    System.out.println("successful to send message");
}

這樣就可以傳送簡單的郵件訊息。如果想要傳送比較複雜的郵件,比如說有附件,有圖片等。需要使用MimeMailMessage類來實現。這裡面只需要修改的就是註冊Bean的時候新增這個功能即可,附程式碼如下:

@Component
public class EmailConfig {

    @Value("${GaH.stmp.host}")
    private String host;
    @Value("${GaH.stmp.account}")
    private String account;
    @Value("${GaH.stmp.password}")
    private String password;

    @Value("${mail.smtp.auth}")
    private String isAuth;
    @Value("${mail.smtp.timeout}")
    private String outTime;

    @Value("${mail.attach.img}")
    private String imgPath;


    @Bean(name = "JavaMailSenderImpl")
    public JavaMailSenderImpl getMailSender(){
        JavaMailSenderImpl javaMailSender= new JavaMailSenderImpl();
        javaMailSender.setHost(host);
        javaMailSender.setUsername(account);
        javaMailSender.setPassword(password);
        Properties properties=new Properties();
        properties.put("mail.smtp.auth", isAuth);
        properties.put("mail.smtp.timeout", outTime);
        javaMailSender.setJavaMailProperties(properties);
        return javaMailSender;
    }

    public void sendSimpleMail(MyEmail email){
        SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
        simpleMailMessage.setFrom(account);
        String receiver=email.getReceiver();
        String receivers[]=receiver.split(";");
        simpleMailMessage.setTo(receivers);
        simpleMailMessage.setSubject(email.getSubject());
        simpleMailMessage.setText(email.getContent());
        getMailSender().send(simpleMailMessage);
    }

    public void sendMimeMail(MyEmail email){
        MimeMessage mimMessage= getMailSender().createMimeMessage();
        try {
            MimeMessageHelper messageHelper=new MimeMessageHelper(mimMessage,true,"utf-8");
            messageHelper.setFrom(account);
            String receiver=email.getReceiver();
            String receivers[]=receiver.split(";");
            messageHelper.setTo(receivers);

            messageHelper.setSubject(email.getSubject());
            messageHelper.setText(email.getContent(),true);//Set the second Param to True
            FileSystemResource res= new FileSystemResource(new File(imgPath));
            messageHelper.addInline("attachFile",res);
            getMailSender().send(mimMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }


}

配置檔案都在application.properties中,如果想要自定義配置檔案的位置,可以參考:
spring boot 自定義檔案配置

相關推薦

Spring boot 整合郵件服務

新增依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

Spring boot 整合JavaMail服務傳送郵件

JavaMail是SUN提供給廣大Java開發人員的一款郵件傳送和接受的一款開源類庫,支援常用的郵件協議,如:SMTP、POP3、IMAP,開發人員使用JavaMail編寫郵件程式時,不再需要考慮底層的通訊細節如:Socket而是關注在邏輯層面。JavaMail可以傳送各種

spring-boot(六) 郵件服務

一起 入庫 ref ati run from 了解 end 字符串 學習文章來自:springboot(十):郵件服務 簡單使用 1、pom包配置 pom包裏面添加spring-boot-starter-mail包引用 <dependencies&g

Spring Boot實現郵件服務,附常見郵箱的配置

  1. pom.xml檔案中引入依賴      <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-mail<

第十三篇:Spring Boot郵件服務

傳送郵件應該是網站的必備功能之一,什麼註冊驗證,忘記密碼或者是給使用者傳送營銷資訊。最早期的時候我們會使用JavaMail的相關API來編寫傳送郵件的相關程式碼,後來Spring推出了JavaMailSender更加簡化了郵件傳送的過程,再之後Spring Boot對此進行了封裝就有了現

企業分布式微服務雲SpringCloud SpringBoot mybatis (十三)Spring Boot整合MyBatis

ech 字段 osc 操作 with public assert 連接 ref Spring中整合MyBatis就不多說了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步驟。搜了一下Spring Boot整合MyBatis的文

Spring Boot 整合dubbo與zookeeper實現不同專案之間資料通過服務的傳遞

一、安裝zookeeper 1、下載路徑:http://mirrors.hust.edu.cn/apache/zookeeper/ 可以自己選擇版本進行下載(同時支援windows和linux) 2、目錄結構 3、修改conf下的配置檔案zoo.cfg 4、

SpringCloud SpringBoot mybatis 分散式微服務(十四)Spring Boot整合MyBatis

Spring中整合MyBatis就不多說了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步驟。搜了一下Spring Boot整合MyBatis的文章,方法都比較老,比較繁瑣。查了一下文件,實際已經支援較為簡單的整合與使用。下面就

spring boot整合jpa構建微服務以及服務呼叫

一、Maven構建專案 1、訪問http://start.spring.io/ 2、選擇構建專案的基本資訊,參考下圖:   3、點選Generate Project下載專案壓縮包 4、下載後解壓到本地,並以Import -> Existing Maven Projec

spring boot 整合activemq 進行服務端訊息推送(web頁面)

最近公司的專案裡有需要服務端向web端實時推送訊息的需求,網上搜索了一番,有前端頁面通過定時任務向後臺傳送ajax請求重新整理,有使用第三方提供的訊息服務(GoEasy),前者因為會有很多請求是無用的,容易加大伺服器負荷造成宕機,後者現在收費了(免費的也只能用一

Spring boot整合mybatis實現Restful服務demo

首先要宣告,這個demo很大程度上參考了這篇文章: 所以把它歸為轉載之列。 首先建立資料表並插入一條資料(資料庫名隨意): DROP TABLE IF EXISTS `city`; CREATE TABLE `city` ( `id` int(10) unsig

spring-boot整合dubbo:Spring-boot-dubbo-starter

hub pack 自動配置 china end service get exceptio 整合 為什麽要寫這個小工具 如果你用過Spring-boot來提供dubbo服務,相信使用中有很多“不爽”的地方。既然使用spring boot,那麽能用註解的地方絕不用xml配置,這

Spring Boot 整合 Elasticsearch,實現 function score query 權重分查詢

search 小寫 業務 jpg 啟動會 last cti cal agen 摘要: 原創出處 www.bysocket.com 「泥瓦匠BYSocket 」歡迎轉載,保留摘要,謝謝! 『 預見未來最好的方式就是親手創造未來 – 《史蒂夫·喬布斯

Spring Boot 部署與服務配置

端口 pattern alt getclass utf-8 打包成 interface ber eba Spring Boot 其默認是集成web容器的,啟動方式由像普通Java程序一樣。main函數入口啟動。其內置Tomcat容器或Jetty容器,詳細

十六、Spring Boot 部署與服務配置

truct package pen vra 技術分享 時間 gprof ica 情況 spring Boot 其默認是集成web容器的,啟動方式由像普通Java程序一樣,main函數入口啟動。其內置Tomcat容器或Jetty容器,具體由配置來決定(默認Tomcat)。當然

spring boot整合mybatis深坑之c3p0的詳細配置

text context ati reat source ast type fig oot 項目地址:https://gitee.com/zhangjunqing/spring-boot/tree/master/springboot-mybatis-notice 本人在c3

spring boot整合swagger ui (RESTFUL接口的文檔在線自動生成+功能測試功能軟件,前後端分離快速開發)

oot images user builder img iop spi update and swagger ui可以通過來攔截controller層,生成請求API,並將其展示在瀏覽器當中。我們可以直接通過瀏覽器來查看和調試接口。 1 添加maven依賴

Spring boot整合jsp

jstl標簽庫 中學 encoding 正常 group lan 名稱 free vax   這幾天在集中學習Spring boot+Shiro框架,因為之前view層用jsp比較多,所以想在spring boot中配置jsp,但是spring boot官方不推薦使用jsp

spring boot 整合mybatis

參考 plugins odin system stack name incr xmlns xsd 參考: http://blog.csdn.net/saytime/article/details/74783296 spring boot可以使用全註解的方式進行開發,極大的提

spring boot整合mybatis+mybatis-plus

可靠 nic false system ttr .post 代碼生成 -i filters Spring boot對於我來說是一個剛接觸的新東西,學習過程中,發現這東西還是很容易上手的,Spring boot沒配置時會默認使用Spring data jpa,這東西可以說一個