使用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
使用uflare/smtp2http 将smtp 转转化为http 请求的更多相关文章
- openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务
lua-resty-mail 是一个不错的openresty mail 扩展,我们可以用来进行邮件发送,支持附件功能 smtp2http 是一个smtp 服务,可以将smtp 请求数据转换为http ...
- linux服务之smtp
实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...
- java通过smtp发送电子邮件
package com.sm.modules.oa.web; import javax.mail.Session; import javax.mail.Transport; import javax. ...
- java代码发送邮箱验证码与qq邮箱smtp服务
发送邮箱的类封装,在此之前需要一个jar包 javax.mail.jar 下载链接https://github.com/javaee/javamail/releases/download/JAVAM ...
- 使用Java代码发送SMTP邮件
package cn.Douzi.send; import javax.mail.Session; import javax.mail.Transport; import javax.mail.int ...
- 电子邮件协议:SMTP、POP3、IMAP4
常见的电子邮件协议:SMTP.POP3.IMAP4 邮件发送协议:SMTP协议 邮件读取协议:POP3.IMAP4协议 SMTP协议(simple mail transfer protocol ...
- PHP 面试知识点整理归纳
基础篇了解大部分数组处理函数 array_chunk — 将一个数组分割成多个 array_column — 返回数组中指定的一列 array_combine — 创建一个数组,用一个数组 ...
- os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法
一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...
- EF中多表公共字段,以及设置EntityBase使所有实体类继承自定义类
使用EF框架访问数据库时,如果某些表具有公共字段,例如在审核流程中,对于各类申请单资料的创建人.创建时间.修改人.修改时间,这些可能多表都需要的字段,如果在每个实体中进行赋值操作显然是类似和重复的,下 ...
随机推荐
- Invalid MEX-file: caffe.mexa64 的解决方案
http://blog.csdn.net/iamzhangzhuping/article/details/53105708
- 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现(二)[超详细教程] ubuntu16.04版本
本节对应谷歌开源Tensorflow Object Detection API物体识别系统 Quick Start步骤(一): Quick Start: Jupyter notebook for of ...
- win 10 初始环境变量
有时用户会修改Win10系统的环境变量,改到后面原来是什么的也记不得了,想要改回去还要去别的电脑查看,这里转载下Win10 64位环境变量的默认初始值. 附:打开环境变量方法:电脑左下右键——系统—— ...
- WebView加载页面
//使用内置浏览器webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoa ...
- 九、编写led驱动
led.c #include <linux/init.h> #include <linux/module.h> #include <linux/cdev.h> #i ...
- [转]JavaScript与元素间的抛物线轨迹运动
在张鑫旭的博客看到这个抛物线的小动画,觉得很感兴趣,转载一下方便研究~ 原文地址:http://www.zhangxinxu.com/wordpress/?p=3855 在页面上添加元素的位移动画,除 ...
- [JetBrains注册] 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法
我们在使用JetBrains的一些产品时,大多使用网上的一些key去注册或者pojie的,但是由于提供这些key的服务器并不能保证稳定可用,所以可能一段时间我们使用的ide又需要重新pojie. 这里 ...
- c++ 中:和::理解
1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; X ...
- 2.20 绕过验证码(add_cookie)
2.20 绕过验证码(add_cookie) 前言验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级 ...
- options.html:1 Refused to load the script 'xxxx' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
/********************************************************************************* * options.html:1 ...