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

使用uflare/smtp2http 将smtp 转转化为http 请求的更多相关文章

  1. openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务

    lua-resty-mail 是一个不错的openresty mail 扩展,我们可以用来进行邮件发送,支持附件功能 smtp2http 是一个smtp 服务,可以将smtp 请求数据转换为http ...

  2. linux服务之smtp

    实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...

  3. java通过smtp发送电子邮件

    package com.sm.modules.oa.web; import javax.mail.Session; import javax.mail.Transport; import javax. ...

  4. java代码发送邮箱验证码与qq邮箱smtp服务

    发送邮箱的类封装,在此之前需要一个jar包  javax.mail.jar 下载链接https://github.com/javaee/javamail/releases/download/JAVAM ...

  5. 使用Java代码发送SMTP邮件

    package cn.Douzi.send; import javax.mail.Session; import javax.mail.Transport; import javax.mail.int ...

  6. 电子邮件协议:SMTP、POP3、IMAP4

    常见的电子邮件协议:SMTP.POP3.IMAP4   邮件发送协议:SMTP协议 邮件读取协议:POP3.IMAP4协议   SMTP协议(simple mail transfer protocol ...

  7. PHP 面试知识点整理归纳

    基础篇了解大部分数组处理函数 array_chunk — 将一个数组分割成多个    array_column — 返回数组中指定的一列    array_combine — 创建一个数组,用一个数组 ...

  8. os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法

    一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...

  9. EF中多表公共字段,以及设置EntityBase使所有实体类继承自定义类

    使用EF框架访问数据库时,如果某些表具有公共字段,例如在审核流程中,对于各类申请单资料的创建人.创建时间.修改人.修改时间,这些可能多表都需要的字段,如果在每个实体中进行赋值操作显然是类似和重复的,下 ...

随机推荐

  1. java 2D图形绘制

    package jisuan; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; imp ...

  2. [Linux]Linux下yaf发送IPV4和IPV6的IPfix

    一.IPFIX与NetFlow 一.IPFIX 全称IP Flow Information Export,即IP流信息输出,是网络流量监测的国际标准.IPFIX是IETF的一个工作组,它的主要工作就是 ...

  3. [Leetcode 881]船救人 Boats to Save People 贪心

    [题目] The i-th person has weight people[i], and each boat can carry a maximum weight of limit. Each b ...

  4. 深入理解java虚拟机---对象的访问定位(十)

    引用其他人的文章: https://www.cnblogs.com/YYfish/p/6722258.html 那是怎么访问对象呢? java 程序是通过栈上的reference数据来操作堆上的具体对 ...

  5. 栈回溯简单实现(x86)

    0x01  栈简介  首先局部变量的分配释放是通过调整栈指针实现的,栈为函数调用和定义局部变量提供了一块简单易用的空间,定义在栈上的变量不必考虑内存申请和释放.只要调整栈指针就可以分配和释放内存.   ...

  6. FPGA复位的可靠性(转)

    FPGA复位的可靠性(同步复位和异步复位)  reference:http://www.eetop.cn/blog/html/17/743817-24442.html 一.特点: 同步复位:顾名思义, ...

  7. Centos7 LNMP 一键安装

    首页: https://lnmp.org/ 安装包生成页: https://lnmp.org/auto.html

  8. 设计Web程序,计算任意两个整数的和,并在网页上显示结果。要求在javabean中实现数据的求和功能。

    <%--提交页面input.jsp--%> <%@ page language="java" import="java.util.*" pag ...

  9. 一种基于SDR实现的被动GSM嗅探

    软件定义无线电(SDR)是一种无线电通信系统,简单来说,就是通过数字信号处理技术在通用可编程数字信号处理硬件平台上,利用软件定义来实现无线电台的各单元功能,从而对无线电信号进行调制.解调.测量.SDR ...

  10. 并行【parallel】和并发【concurrency】线程是并发还是并行,进程是并发还是并行

    线程是并发,进程是并行:进程之间相互独立,是系统分配资源的最小单位,同一个线程中的所有线程共享资源. 并行,同一时刻多个任务同时在运行. 并发,在同一时间内隔内多个任务都在运行,但是都不会在同一时刻同 ...