学习SpringBoot 集成邮件发送(参考纯洁的微笑) 记录其中遇到的问题

1.pom里面,增长相关依赖包html

<!--邮件集成-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.application.properties里面,增长相关配置java

#邮箱服务器地址
#spring.mail.host=smtp.qiye.163.com
spring.mail.host=smtp.163.com
#用户名
spring.mail.username=**********
#密码
spring.mail.password=********
spring.mail.default-encoding=UTF-8
spring.mail.port=25
#/以谁来发送邮件
mail.fromMail.addr=********

须要注意 spring

设置开启本身邮箱对应的服务服务器

username与addr保持一致   app

password不是邮箱的登陆名,而是客户端的受权码spring-boot

3.贴上代码测试

package com.example.demo.emilyServer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

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

@Component
public class TestEmilySend {
    @Autowired
    private JavaMailSender javaMailSender;

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Value("${mail.fromMail.addr}")
    private String from;


    /**
     *
     * @param to 接受邮箱
     * @param subject 标题
     * @param content 内容
     */
    public void sendMail(String to, String subject, String content){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//普通文本
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        try {
            javaMailSender.send(simpleMailMessage);
            logger.info("邮件发送成功------------");
        } catch (MailException e) {
            e.printStackTrace();
            logger.error("邮件发送失败------------");
        }
    }


    /**
     * 发送html邮件
     * @param to
     * @param subject
     * @param content
     */
    public void sendMailByHtml(String to, String subject, String content){
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setText(content,true);
            helper.setSubject(subject);
            javaMailSender.send(mimeMessage);
            logger.info("发送成功-----------------");
        } catch (MessagingException e) {
            e.printStackTrace();
            logger.error("发送失败----------------");
        }

    }


    /**
     * 发送邮件携带附件
     */
    public void sendMailByFile(String to, String subject, String content, String filePath){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("测试文档.docx",file);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送邮件,携带图片
     */
    public void sendMailByImage(String to, String subject, String content, String filePath,String image){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("测试文档.docx",file);
            helper.addInline("测试图片",new File(image));
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

 

发送附件,邮件的时候,若是不成功,参看163的返回码查找缘由this

http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.htmlhtm

请勿有test等,会被当作垃圾邮件处理blog

相关文章
相关标签/搜索