使用spring的JavaMailSender發送郵件

使用spring的JavaMailSender發送郵件

說明

底層依賴 javamail 實現

pom.xml 依賴項

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

spring.xml Spring配置文件

<!-- SMTP - Simple Mail Transfer Protocol / TCP 25 -->
    <!-- POP3 - Post Office Protocol version 3 / TCP 110 -->
    <bean class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <!-- 設置SMTP服務器 -->
        <property name="host" value="smtp.126.com" />
        <property name="username" value="from-username" />
        <!-- 現在大多數郵件服務器都不是用密碼作爲授權碼而是單獨申請授權碼進行身份驗證 -->
        <property name="password" value="mima" />
        <!--
        <property name="javaMailProperties">
            <props>
                <prop key="timeout">30000</prop>
            </props>
        </property>
        -->
    </bean>

示例代碼(可以添加附件)

package com.qfedu.mooc1706.service.impl;

import com.lyx.mooc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.internet.MimeMessage;
import java.io.File;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private JavaMailSender mailSender;

    // 企業郵件通常有固定的header或footer如果要生成這些內容那麼有兩種推薦的方式
    // 方式一:用Freemarker或Velocity模板引擎來生成郵件的正文內容
    // 方式二:用建造模式來建造郵件的header、body和footer
    @Override
    public boolean register() {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "utf-8");
            helper.setFrom("[email protected]");
            helper.setTo("[email protected]");
            helper.setSubject("註冊激活碼");
            helper.setText("hello,world");
            // helper.addAttachment("gay.jpg", new File("gay.jpg"));
            mailSender.send(mimeMessage);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章