sping和springboot关于mail邮件服务及其参数配置

1.Spring mail 邮件服务及其参数配置(properties文件的读写)

为了使用方便,采用静态方法的实现方式,其中的JavaMailSenderImpl 实例是通过代码的方式创建的,脱离了Spring容器的管理。当然也可以使用Spring注入的方式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oZmQpHg2-1570792089460)(http://172.23.1.21/wp-content/uploads/2019/09/image-1568789791466.png)]

在代码中直接这样注入:
在这里插入图片描述
在这里插入图片描述
上面用到的东西还是蛮多的,其中属性文件的读写可能要花费一点时间去理解。Spring封装的邮件API使用起来非常简单。在实际应用中,系统参数配置修改还是常见的需求,一般这种键值对的配置用一个属性文件保存即可,通过修改属性文件达到修改参数配置的目的,对于不需要更改的只读的属性文件,例如jdbc.properties,那使用Spring容器来管理加载一次即可,这些数据库的连接等信息并不需要动态更改,如果真的需要动态切换数据库,那么可以参考上面提供的一种思路。
另外当然可以采用数据库存储的方式来实现,单独建立一张键值对的表,配置参数的修改则转换为了对普通表的增删改。

2.SpringBoot下动态更改配置的邮件服务

在SpringBoot下实现邮件发送服务是非常方便的,在pom文件中引入相关依赖后,只需在application.properties文件中写入smtp服务器、发件邮箱、授权码等配置后,便可正常使用了。
但是,把配置写在application.properties就意味着我们无法动态地更改以上配置,当有这种动态指定发件人的需求时,就可以用下面这种方式:

需传递的动态参数:
在这里插入图片描述
实现JavaMailSender:
在这里插入图片描述
建立邮件:
在这里插入图片描述
后两步可以封装成一个方法,接收第一步所列的参数。这样就可以动态的修改邮件服务的配置了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring Boot 中整合发送邮件可以使用 JavaMailSender 接口来实现。下面是一个简单的示例代码: 首先,确保在你的项目的 pom.xml 文件中添加了 Spring Boot 邮件依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 然后,在你的 application.properties 或 application.yml 文件中配置邮件相关的属性: ```properties # 邮件发送服务器主机名 spring.mail.host=your-smtp-server # 邮件发送服务器端口号 spring.mail.port=your-smtp-port # 邮件发送服务器用户名 spring.mail.username=your-username # 邮件发送服务器密码 spring.mail.password=your-password # 是否启用 SSL/TLS 安全连接 spring.mail.properties.mail.smtp.starttls.enable=true ``` 接下来,创建一个邮件服务类,用于发送邮件: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 最后,在你的控制器或其他地方调用邮件服务类的 sendEmail 方法发送邮件: ```java import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class EmailController { @Autowired private EmailService emailService; @GetMapping("/send-email") public String sendEmail() { String to = "recipient@example.com"; String subject = "Test Email"; String text = "This is a test email sent from Spring Boot."; emailService.sendEmail(to, subject, text); return "Email sent successfully"; } } ``` 这样,当你访问 `/send-email` 路径时,就会发送一封测试邮件到指定的收件人邮箱。你可以根据实际需求修改相应的参数邮件内容。记得将 `your-smtp-server`、`your-smtp-port`、`your-username` 和 `your-password` 替换为你的邮件服务器和账户信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值