1. 程式人生 > 其它 >Springboot整合郵件傳送(163郵箱為例)

Springboot整合郵件傳送(163郵箱為例)

技術標籤:springmvc

一、新增spring-boot-starter-mail

  <!--郵件傳送-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

二、新增yml配置

spring:
  mail:
    host: smtp.163.com
    password
: 郵箱授權碼不是密碼 username: 163郵箱 port: default-encoding: UTF-8 protocol: smtp properties: mail.smtp.auth: true mail.smtp.starttls.enable: true mail.smtp.starttls.required: true mail.smtp.socketFactory.port: 465 mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory mail.smtp.socketFactory.fallback
: false

三、傳送郵件實現

public interface MailService {
    /**
     * 郵件傳送
     * @param to
     * @param subject
     * @param text
     * @return
     */
    boolean sendMail(String to, String subject, String text);
}

@Service
public class MailServiceImpl implements MailService {
    private final JavaMailSender mailSender;
@Value("${spring.mail.username}") private String from; public MailServiceImpl(JavaMailSender mailSender) { this.mailSender = mailSender; } @Override public boolean sendMail(String to, String subject, String text) { SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom(from); msg.setTo(to); msg.setSubject(subject); msg.setText(text); try { mailSender.send(msg); } catch (MailException ex) { System.err.println(ex.getMessage()); return false; } return true; } }

四、呼叫介面傳送測試郵件

@RestController
@RequestMapping("mail")
public class EmailController {

    @Autowired
    MailService mailService;

    @RequestMapping("send")
    public void sendMail(){
        mailService.sendMail("[email protected]","test","test");
    }
}