• 使用uflare/smtp2http 将smtp 转转化为http 请求


    uflare/smtp2http 是一个很不错的工具,我们使用这个工具,可以快速的将smtp 服务转换为http 服务
    用途实际上挺多的

    • devops 系统
    • 需要使用smtp的系统(测试)
    • 基于smtp 的报警系统
      。。。。

    环境准备

    • docker-compose 文件
      包好了一个基于nodejs 的smtp 发送代码以及基于benthos 的webhook 功能,还有就是smtp 服务
     
    version: "3"
    services:
      send:
        build: ./
      benthos:
        image: jeffail/benthos
        volumes:
        - "./conf/webhook.yaml:/benthos.yaml"
        ports:
        - "4195:4195"
      smtp2http:
        image: uflare/smtp2http
        command: --listen=:25 --webhook=http://benthos:4195/ --strict=false
     
    • 代码说明
      smtp 发送服务:
      主要是nodejs 代码,很简单,就是使用emailjs 包进行发送就可以了
     
    var email = require("emailjs");
    var server = email.server.connect({
       host: "smtp2http", 
       ssl: false
    });
     server.send({
       text: "dalongdemo", 
       from: "1141591465@qq.com", 
       to: "dalongrong@qq.com",
       subject: "dalongdemo"
    }, function(err, message) { console.log(err || message); });
     
     

    webhook 功能:
    主要是配置文件,conf/webhook.yaml输出为标准日志

     
    input:
      type: broker
      broker:
        inputs:
          - type: http_server
            http_server:
              path: /
            processors:
              - type: text
                text:
                  operator: prepend
                  value: "get email message: "
    output:
      type: stdout
     
     

    运行&&测试

    • 运行 
    docker-compose up -d
     
     
    • 发送smtp 效果
    docker-compose start send
     
     
    • 日志信息
      docker-compose logs -f benthos
      类似如下:
     
    benthos_1 | get email message: addresses%5Bbcc%5D=&addresses%5Bcc%5D=&addresses%5Bfrom%5D=1141591465%40qq.com&addresses%5Bto%5D=dalongrong%40qq.com&body%5Bhtml%5D=&body%5Btext%5D=

    dalongdemo%0A%0A%0A%0D%0A.%0D&id=%3C1544615810098.0.28%40aa65cd708904%3E&subject=dalongdemo
     
     

    说明

    使用smtp2http 我们可以做好多时间,比如开发中的功能测试,devops 的应用集成,以及基于smtp 的监控系统。。。

    参考资料

    https://github.com/rongfengliang/smtp2http-docker-compose
    https://github.com/uflare/smtp2http

  • 相关阅读:
    建造者(Builder)模式
    模板方法模式(Tempalte Method Pattern)
    NIO Socket编程实例
    Java NIO概述
    转:Java中的Clone()方法详解
    调停者(Mediator)模式
    门面(Facade)模式
    struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
    Struts2默认拦截器配置
    struts2的json-default和struts-default的区别
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10110727.html
Copyright © 2020-2023  润新知