内网搭建邮件服务,打通 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. 创建一个服务配置文件:

sudo vim /etc/systemd/system/mailhog.service

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

[Unit]
Description=MailHog Email Catcher
After=network.target

[Service]
Type=simple
User=mailhog
ExecStart=/home/MailHog_linux_amd64
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

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

sudo systemctl daemon-reload
sudo systemctl enable mailhog
sudo systemctl start mailhog
sudo systemctl status mailhog # 检查运行状态

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

2.3 配置小结

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

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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 / 启用认证:取消勾选

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

3.1.2 在内网环境激活

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

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

3.2 邀请用户

3.2.1 邀请新用户

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

3.2.2 新用户激活

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

3.3 事件通知

3.3.1 配置通知途径

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

内网搭建邮件服务,打通 IDMP 通知途径 - TDengine Database 时序数据库

3.3.2 邮件通知

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

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