内网搭建邮件服务,打通 TDengine IDMP 通知途径

1. 背景

TDengine IDMP 作为一款 AI 原生的物联网、工业数据管理系统,旨在帮助企业快速高效的从运营数据中挖掘出商业价值,架起 OT 到 IT 的桥梁。其中,邮件不失为一种成熟而稳定的通知途径。IDMP 需要发送邮件的情况包括但不限于:

  • 首次激活:IDMP 用邮件地址作为用户 ID,首次激活必须通过邮件获取验证码。
  • 邀请用户:超级管理员通过输入邮件地址邀请其他人成为 IDMP 的用户。
  • 事件通知:通知类型可以是邮件、飞书、Webhook。邮件通知功能可在事件触发时,向指定邮箱发送告警信息。

因此,如果想更好地使用 IDMP,需要配置 SMTP 服务器。系统安装后,缺省的 SMTP 服务器配置为 TDengine 邮箱。可根据需要配置为企业指定的邮件服务器。

但是,有些 IDMP 服务器所在的网络,不能访问互联网或企业邮箱服务,俗称"内网"。针对于此,本文介绍一种简单可行的在内网环境快速搭建 SMTP 邮件服务(MailHog)的方法。

IDMP 版本:1.0.4.4 以上。

2. 快速配置 MailHog

MailHog是一款轻量级的邮件测试工具,主要用于开发和测试环境中模拟SMTP服务器。它可以捕获应用程序发送的所有邮件,而不实际发送到真实收件人,非常适合在开发阶段测试邮件发送功能。

MailHog提供两种配置方式:

  • 命令行参数:启动时通过参数直接配置
  • 环境变量:通过系统环境变量配置

两种方式效果相同,可以根据使用场景选择合适的方式。环境变量方式更适合容器化部署场景。

2.1 运行 MailHog

本例假设在本地或宿主机方式直接运行 MailHog,方法很简单。

  1. 下载对应的版本:https://github.com/mailhog/MailHog/releases,例如:
    • Windows系统请下载 MailHog_windows_amd64.exe
    • Linux 系统请下载 MailHog_linux_amd64MailHog_linux_arm
    • macOS 系统请下载 MailHog_darwin_amd64
  2. 上传到目标服务器上
  3. 在服务器上运行 MailHog
    • 如果是 Windows 系统,直接运行 MailHog_windows_amd64.exe 即可
    • 如果是 Linux/macOS 系统,为文件添加可执行权限(例如 chmod +x MailHog_linux_amd64),然后运行

2.2 高级配置(可选):将 MailHog 设为系统服务

为了让 MailHog 在服务器启动时自动运行并在后台持续工作,最好将其配置为系统服务。

以 Linux 系统为例:

  1. 创建一个服务配置文件:
复制代码
  1. sudo vim /etc/systemd/system/mailhog.service

  2. 将以下内容写入文件(请根据您的实际路径修改 ExecStart):

复制代码
  1. [Unit]

  2. Description=MailHog Email Catcher

  3. After=network.target

  4. [Service]

  5. Type=simple

  6. User=mailhog

  7. ExecStart=/home/MailHog_linux_amd64

  8. Restart=always

  9. RestartSec=5

  10. [Install]

  11. WantedBy=multi-user.target

  12. 保存后,启用并启动服务:

复制代码
  1. sudo systemctl daemon-reload
  2. sudo systemctl enable mailhog
  3. sudo systemctl start mailhog
  4. sudo systemctl status mailhog # 检查运行状态

这样,MailHog 就会作为守护进程在后台运行,即使关闭终端也不会停止。

2.3 配置小结

|--------------|-------------------------------------------------------------------------|
| 项 | 配置 |
| ​​SMTP 服务器​​ | localhost |
| ​​SMTP 端口​​ | 1025 |
| ​​Web 管理界面​​ | http://localhost:8025 |
| ​​认证​​ | 默认禁用(无需用户名密码) |
| ​​运行方式​​ | 直接执行二进制文件或配置为系统服务 |

运行后,可以浏览器 http://IP:8025 访问 Web 管理界面:

3. 验证

3.1 激活 IDMP

浏览器 http://IP:6042 访问 IDMP 实例,首次访问将出现激活页面,填写"邮箱"和"组织"后,【获取验证码】。

3.1.1 更新邮件服务器配置

此时因为服务器无法访问互联网,将弹出页面让您提供正确的邮件服务器配置。

主机: 如果 IDMP 是通过安装包部署,填写 localhost;如果是通过 Docker / Docker Compose 部署,则填写 host.docker.internal 或 Docker桥接网络的IP(通常为172.17.0.1,具体可通过 docker inspect docker_taos_net 查看)

**端口:**1025

**用户名 / 密码:**随意填写。因 MailHog 默认禁用认证,实际上无需用户名密码。

**启用 TLS / 启用认证:**取消勾选

【检查】,提示 检查通过!,【保存】

3.1.2 在内网环境激活

回到激活页面,【获取验证码】,此时将提示 发送成功

说明:如果提示 验证码已经发送,请稍后重试。,请10分钟后再点击获取。

到 MailHog 的 Web 管理界面( http://IP:8025 )查收邮件。

在 IDMP 激活界面输入邮件中的激活码后,【激活】。激活成功,MailHog 将再次收到一封邮件提醒。

在 IDMP 点击右上角头像,【管理后台】->【系统配置】->【邮件服务器配置】,将发现已更新为内网邮件服务。

3.2 邀请用户

3.2.1 邀请新用户

在 IDMP 点击右上角头像,【管理后台】->【用户管理】->【用户】,点击【+】按钮,邀请新用户(zhangsan@example.com),赋予角色为 经理和主管

【保存】,提示 邀请用户成功。此时 MailHog 将收到一封新邮件

3.2.2 新用户激活

【点击激活】,填写用户"张三"的信息,【继续】,提示 注册成功

如果使用超级管理员登录 IDMP,将发现新用户"张三"已是 ACTIVE 状态。

而 MailHog 也收到邮件欢迎新用户的加入。

3.3 事件通知

3.3.1 配置通知途径

在 IDMP 点击右上角头像,【管理后台】->【系统配置】->【通知途径】,可以看到系统当前的通知途径列表,默认已创建一条包含管理员邮箱的通知途径数据。点击【+】按钮可以创建更多通知途径。

3.3.2 邮件通知

邮件通知功能可在事件触发时,向指定邮箱发送告警信息。

您可根据您的实际场景,在 IDMP 中创建分析,生成满足特定条件的事件以触发通知机制,进而验证邮件通知功能是否正常。此文不再赘述。

相关推荐
青鱼入云4 分钟前
ES脚本语言Painless介绍
大数据·elasticsearch·搜索引擎
Jonathan Star1 小时前
嵌套 Git 仓库(Submodule/子模块)
大数据·git·elasticsearch
TDengine (老段)2 小时前
从“数据堆场”到“智能底座”:TDengine IDMP如何统一数据语言
大数据·数据库·物联网·时序数据库·tdengine
liuyunshengsir3 小时前
让 Elasticsearch Delete By Query 请求立即生效
大数据·elasticsearch·jenkins
武子康3 小时前
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
大数据·后端·nosql
ZEERO~3 小时前
夏普比率和最大回撤公式推导及代码实现
大数据·人工智能·机器学习·金融
培培说证4 小时前
中专生做电商客服,能转电商运营吗?需要学习什么?
大数据·职场和发展
码界奇点4 小时前
时序数据库选型指南从大数据视角看IoTDB的核心优势
大数据·时序数据库·iotdb
数据超市4 小时前
快速CAD转到PPT的方法,带教程
大数据·python·科技·信息可视化·数据挖掘
TDengine (老段)4 小时前
从细胞工厂到智能制造:Extracellular 用 TDengine 打通数据生命线
java·大数据·数据库·科技·制造·时序数据库·tdengine