SSM整合框架實現發送郵件功能


1.導入發送郵件的依賴

  <!--    發送郵件jar包-->
    <!--spring支持-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>5.0.0.RELEASE</version>
    </dependency>
    <!--郵件發送-->
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <version>1.6.1</version>
    </dependency>

2.發送郵件的賬號開啟POP3/SMTP/IMAP/SMIP服務

3.spring-mybatis.xml配置文件中添加發送郵件所需的配置信息

 <!--郵件配置-->
    <context:property-placeholder location="classpath:email.properties" ignore-unresolvable="true"/>

    <!--配置郵件接口-->
    <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${mail.smtp.host}"/>
        <property name="username" value="${mail.smtp.username}"/>
        <property name="password" value="${mail.smtp.password}"/>
        <property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
            </props>
        </property>
    </bean>

4.創建email.properties      接上 配置郵件接口  

#服務器主機名 smtp.xx.com
mail.smtp.host=smtp.qq.com
mail.smtp.username=開啟服務的郵箱號@qq.com
#密碼/客戶端授權碼
mail.smtp.password=開啟服務的郵箱號的密鑰
#編碼字符
mail.smtp.defaultEncoding=utf-8
#是否進行用戶名密碼校驗
mail.smtp.auth=true
#設置超時時間
mail.smtp.timeout=20000

5.在控制層測試

package com.mvo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.IOException;
import java.util.Properties;

/**
 * 測試郵件發送controller
 */
@Controllerpublic class SendMailController {
    @Autowired
    private JavaMailSender javaMailSender;//在spring中配置的郵件發送的bean

    @RequestMapping("sendMailTest")
    public Object sendMailTest(){
        MimeMessage mMessage=javaMailSender.createMimeMessage();//創建郵件對象
        MimeMessageHelper mMessageHelper;
        Properties prop = new Properties();
        String from;
        try {
            //從配置文件中拿到發件人郵箱地址
            prop.load(this.getClass().getResourceAsStream("/email.properties"));
            from = prop.get("mail.smtp.username")+"";
            mMessageHelper=new MimeMessageHelper(mMessage,true);
            mMessageHelper.setFrom(from);//發件人郵箱
            mMessageHelper.setTo("收件人郵箱號@qq.com");//收件人郵箱
            mMessageHelper.setSubject("ssm框架測試郵件發送");//郵件的主題
            mMessageHelper.setText("<p>這是使用spring,springmvc,mybatis整合框架的郵件功能發送的一封郵件,測試</p>",true);//郵件的文本內容,true表示文本以html格式打開
            File file=new File("C:\\Users\\lcl\\Pictures\\Saved Pictures\\blog.csdn.net_Mr__Viking_article_details_81090046.png");//在郵件中添加一張圖片 
            FileSystemResource resource=new FileSystemResource(file);
            //mMessageHelper.addInline("fengye", resource);//這里指定一個id,在上面引用  
            //mMessageHelper.addAttachment("QQ截圖20200721221932.png", resource);//在郵件中添加一個附件  
            javaMailSender.send(mMessage);//發送郵件
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "發送成功";
    }
}

 --》啟動項目 --》輸入地址測試

6.效果圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM