通过RabbitMQ实现邮箱的发送订阅功能

邮件配置准备工作

配置邮件服务

#配置邮件
spring.mail.host=smtp.qq.com
spring.mail.username = 1261349543@qq.com
spring.mail.password  = 授权码
spring.mail.port = 587
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

RabbitMQ准备工作

配置RabbitMQ服务

#连接RabbitMQ服务端
spring.rabbitmq.host=远程服务器IP
spring.rabbitmq.username=root
spring.rabbitmq.password=root
spring.rabbitmq.port=5672

多模块测试

创建多模块SpringBoot工程emailmessage

  1. 邮件模块 email-service
    引入spring-boot-starter-mail依赖、spring-boot-starter-amqp依赖
    同时有emailmessgae这个parent
 //创建通道
    @Bean
    Queue queue(){
   
        return  new Queue("panlijie.mail
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装RabbitMQ 先下载RabbitMQ,然后安装,安装过程不再赘述。 2. 引入依赖 在pom.xml中加入以下依赖: ``` <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.6.0</version> </dependency> ``` 3. 发送消息 创建一个发送消息的类,代码如下: ```java public class Sender { private final static String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException, TimeoutException { // 创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); // 设置连接的主机名 factory.setHost("localhost"); // 创建连接 Connection connection = factory.newConnection(); // 创建一个通道 Channel channel = connection.createChannel(); // 声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); // 发送消息 String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); System.out.println(" [x] Sent '" + message + "'"); // 关闭通道和连接 channel.close(); connection.close(); } } ``` 4. 订阅消息 创建一个订阅消息的类,代码如下: ```java public class Receiver { private final static String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException, TimeoutException { // 创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); // 设置连接的主机名 factory.setHost("localhost"); // 创建连接 Connection connection = factory.newConnection(); // 创建一个通道 Channel channel = connection.createChannel(); // 声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); System.out.println(" [*] Waiting for messages. To exit press CTRL+C"); // 创建消费者 Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" [x] Received '" + message + "'"); } }; // 监听队列 channel.basicConsume(QUEUE_NAME, true, consumer); } } ``` 5. 运行程序 先运行Receiver类,在控制台可以看到等待消息的提示。然后运行Sender类,在控制台可以看到发送的消息和接收到的消息。 这样就完成了使用Java采用RabbitMQ实现消息发送订阅的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值