加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将原始SMTP消息发送到AMQP代理

发布时间:2020-12-20 13:29:33 所属栏目:Python 来源:网络整理
导读:我正在寻找一种方法来获取大量的入站SMTP消息并将它们放到AMQP代理上以进行进一步的路由和处理.邮件实际上不会以邮箱结尾,而是将SMTP用作邮件网关. 我在Python中编写了一个Postfix后队列内容过滤器,它将入站SMTP消息丢弃到RabbitMQ代理上.这很有效 – 我通过
我正在寻找一种方法来获取大量的入站SMTP消息并将它们放到AMQP代理上以进行进一步的路由和处理.邮件实际上不会以邮箱结尾,而是将SMTP用作邮件网关.

我在Python中编写了一个Postfix后队列内容过滤器,它将入站SMTP消息丢弃到RabbitMQ代理上.这很有效 – 我通过队列得到原始消息,消费者可以很好地接收它.问题是AMQP连接是用每条消息创建和拆除的……每次都会从头开始重新执行内容过滤器脚本.我想这最终会成为一个性能问题.

如果我可以利用重入的东西,我可以重用连接.或许我只是错误地接近整个事情……

解决方法

通过普通TCP建立AMQP连接非常快.也许如果您使用的是SSL,那么这是另一个故事,但您确定将原始消息排入AMQP交换机将成为瓶颈吗?我的猜测是,实际通过SMTP传递消息的速度要慢得多,所以排队的速度不会影响系统的吞吐量.

如果这件事确实成为瓶颈,我宁愿使用Sinatra或Rack创建小型Web服务器,但听起来您可能更喜欢基于Python的解决方案.让postfix内容过滤器使用curl执行HTTP POST到Web服务器,该服务器维护与AMQP服务器的持久连接.

当然,现在您有一个额外的移动部件,您需要考虑监控,错误处理和安全性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读