springboot+邮件+amqp消息队列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了springboot+邮件+amqp消息队列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2462字,纯文字阅读大概需要4分钟。
内容图文
maven依赖
<dependencies>
<!-- 消息队列-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!-- 邮件starter-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
application配置
spring:
mail:
# 邮件服务器地址
host: smtp.163.com
# 协议
protocol: smtp
# 编码格式
default-encoding: utf-8
# 授权码
password:
# 邮箱
username:
# 端口(邮箱网站可查,不同邮箱端口号不同)
port: 25
rabbitmq:
username: guest
password: guest
host: #rabbitmq服务器地址
port: 5672
生产者
/**
* 添加员工
* @param employee
* @return
*/
@Override
public RespBean addEmp(Employee employee) {
// 处理合同期限
LocalDate beginContract = employee.getBeginContract();
LocalDate endContract = employee.getEndContract();
long day = beginContract.until(endContract, ChronoUnit.DAYS);
DecimalFormat decimalFormat = new DecimalFormat("##.00");
employee.setContractTerm(Double.parseDouble(decimalFormat.format(day/365)));
int insert = employeeMapper.insert(employee);
if(insert == 1){
Employee emp = employeeMapper.getEmployee(employee.getId()).get(0);
rabbitTemplate.convertAndSend("mail.welcome",emp);
return RespBean.success("插入成功");
}
return RespBean.error("插入失败");
}
消费者
@RabbitListener(queues = "mail.welcome")
public void handler(Employee employee){
MimeMessage mimeMessage =
javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
try {
// 发件人
mimeMessageHelper.setFrom(mailProperties.getUsername());
// 收件人
mimeMessageHelper.setTo(employee.getEmail());
// 发送日期
mimeMessageHelper.setSubject("入职欢迎邮件");
// 邮件内容
Context context = new Context();
context.setVariable("name",employee.getName());
context.setVariable("posName",employee.getPosition().getName());
context.setVariable("joblevelName",employee.getJoblevel().getName());
context.setVariable("departmentName",employee.getDepartment().getName());
String mail = templateEngine.process("mail", context);
mimeMessageHelper.setText(mail);
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
log.error("邮件发送失败");
e.printStackTrace();
}
}
内容总结
以上是互联网集市为您收集整理的springboot+邮件+amqp消息队列全部内容,希望文章能够帮你解决springboot+邮件+amqp消息队列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。