SpringBoot实现邮件发送

SpringBoot实现邮件发送

1.引入Maven依赖


		
			org.springframework.boot
			spring-boot-starter-mail
		

2.配置application.yml

 
spring:
 mail: 
  protocol: smtps
  host: smtp.qq.com
  username: [email protected]
  password: yours
  port: 465
  properties: 
   mail: 
    smtp: 
     auth: true
     socketFactory: 
      port: 465
      class: javax.net.ssl.SSLSocketFactory
      fallback: false
     starttls: 
      enable: true
      required: true

3.获取配置文件中的信息

//当项目自己启动的时候 ,spring接口 ,spring加载之后,执行接口的一个方法
@Component
public class ConstantPropertiesUtils implements InitializingBean{
	
	//读取配置文件内容
	@Value("${spring.mail.username}")
	private String userName;

	//邮箱发送人
	public static String EMAIL_USERNAME;
	
	//每当加载完配置文件    对公开的静态变量进行赋值
	@Override
	public void afterPropertiesSet() throws Exception {
		EMAIL_USERNAME = userName;
	}

4.编写业务类


@Service
public class EmailServiceImpl implements EmailService{
	
    //注入  发送邮件服务
	@Autowired
	private JavaMailSender javaMailSender;
	
	
	public void sendEmail(String email,String message){
		
		SimpleMailMessage mess = new SimpleMailMessage();
	
		String emailSendUserName = ConstantPropertiesUtils.EMAIL_USERNAME;
		//设置发送人
		mess.setFrom(emailSendUserName);
		//发送内容
		mess.setText(message);
		//标题
		mess.setSubject("测试邮件");
		//收件人
		mess.setTo(email);
		
		javaMailSender.send(mess);
		
	}

}

5.启动测试

        5.1如果出现 Could not connect to SMTP host: smtp.qq.com, port: 465  多半是配置文件写错  (本人是把端口号465写成456)

        5.2 如果是Could not connect to SMTP host: 25, port: -1 则很可能是邮件服务注入失败。

                

你可能感兴趣的:(java,spring)