☰
Mac 当主机,Linux 当服务器(19)配置 Postfix + QQ 邮箱,让告警真正发出来
2026/10/28 1:46:36 网站建设 项目流程

摘要:Alertmanager 只会「调度」,不会「发邮件」——发邮件得靠 MTA。这篇用 Postfix 搭一个本机中继,把告警邮件从虚拟机的 Ubuntu 一路送到你的 QQ 邮箱:main.cf六个参数逐条解释、sasl_passwd授权码文件的写法与权限、发件人一致性这个必踩的坑,以及那个经典的[::1]:25 connection refused。配完,你会第一次收到自己服务器发来的告警邮件。

承接上篇:Alertmanager 装好了,告警能在 UI 里看到了,但邮箱里什么都没有。


一、Alertmanager 有嘴,但嘴被封住了

早上到工位,小林打开 Alertmanager UI,看到昨天触发的HighCpuUsage还挂在那。

「周哥,Alertmanager 能看到告警了,但我邮箱里啥都没有。」

「因为Alertmanager 的『嘴』还没通。」老周说。

「啥意思?」

「Alertmanager 知道要发邮件,但它不会自己发。它得调用一个『邮件传输代理』,也就是MTA。」老周说,「Linux 上最常用的 MTA 就是Postfix。」

「那 Alertmanager 和 Postfix 啥关系?」

「Alertmanager 把邮件内容交给 Postfix,Postfix 负责把邮件发出去。」老周说,「你可以把 Alertmanager 理解成『写信的人』,Postfix 理解成『邮局』。信写好了,得有人送到邮局,邮局再发出去。」

「那为什么不用 Alertmanager 直接连 QQ 邮箱?」

「可以,但配置更复杂。」老周说,「Alertmanager 的email_configs直接配smtp_smarthost也能发,但 SMTP 认证、TLS、授权码这些,全得写进alertmanager.yml。用 Postfix 做本地中继,Alertmanager 只需要写localhost:25,剩下的交给 Postfix。以后换邮箱,只动 Postfix 一个文件。」

「那我 Mac 上能用 Postfix 吗?」

「Mac 也有 Postfix,但 Mac 的 Postfix 配置和 Ubuntu 不一样。」老周说,「而且邮件是在虚拟机里发出去的,跟 Mac 没关系。Postfix 装在 Ubuntu 上。」

小林记下:

  • Alertmanager 不直接发邮件,它调用 MTA;
  • Linux 上最常用的 MTA 是 Postfix;
  • Postfix 做本地中继,Alertmanager 只写localhost:25;
  • Postfix 装在 Ubuntu 上。


二、安装 Postfix

sudoaptupdatesudoaptinstall-ypostfix mailutils

安装过程中,弹出一个界面:

Postfix Configuration General type of mail configuration: No configuration Internet Site Internet with smarthost Satellite system Local only

「选哪个?」小林问。

「选Internet Site。」老周说,「然后系统主机名填你的 Ubuntu 主机名,或者直接回车用默认。」

小林选了 Internet Site,回车。

安装完成。

「mailutils是啥?」小林问。

「mailutils提供mail命令,用来测试发信。」老周说,「Postfix 本身没有发信客户端,mailutils补上。」

「那 Postfix 现在在跑吗?」

systemctl status postfix

输出:

● postfix.service - Postfix Mail Transport Agent Active: active (running)

「在跑。」小林说。

「验证端口。」

sudoss-lntp|grep:25

小林原以为会看到一行,结果出来两行:

LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master",pid=1234,fd=13)) LISTEN 0 100 [::]:25 [::]:* users:(("master",pid=1234,fd=13))

「诶?它不是应该只监听本机吗?」

「这就是Internet Site的默认行为——inet_interfaces = all,所有网卡都听。」老周说,「我们是做本机中继,用不着让外面连进来。收窄一下。」

sudopostconf-e'inet_interfaces = 127.0.0.1'sudosystemctl restart postfix

再验证:

sudoss-lntp|grep:25

输出:

LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:(("master",pid=1234,fd=13))

「127.0.0.1:25,现在只有本机能连了。」老周说,「Alertmanager 和 Postfix 在同一台机器,localhost:25就够了。」

小林记下:

  • 安装:sudo apt install postfix mailutils;
  • 配置类型:Internet Site(但要手动收窄监听范围);
  • 默认监听:all(所有网卡),改成127.0.0.1(只本机);
  • mailutils提供mail测试命令。

三、配置 QQ 邮箱 SMTP 中继

「现在配 QQ 邮箱。」老周说,「你先去 QQ 邮箱开 SMTP 服务,拿授权码。」

「授权码?不是密码?」

「QQ 邮箱

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询