关于Zabbix所使用邮件发送工具的技术咨询
关于Zabbix所使用邮件发送工具的技术咨询
提问内容:
我在Ubuntu LTS 22.04上部署的最新版Zabbix(v6.4)邮件通知功能运行得很顺畅。为了避免重复部署邮件服务,我想直接复用Zabbix的这套邮件发送能力,给同一服务器上的其他非Zabbix自定义脚本发邮件。不过我用sudo apt list --installed命令查看已安装包时,并没有找到postfix、sendmail这类我熟悉的邮件程序。
有没有大佬知道Zabbix到底是用什么来发送邮件的呀?
解答:
兄弟,这事儿我门儿清!Zabbix 6.x(包括你用的6.4版本)的邮件发送逻辑其实很灵活,不一定依赖本地的MTA(邮件传输代理,比如postfix、sendmail),这就是你查不到那些包的原因,具体分两种情况:
- 直接对接外部SMTP服务器:这是Zabbix 6.x最常用的配置方式。你可以登录Zabbix前端,进入【管理】->【媒介类型】,看看是不是配置了
Email (SMTP)类型。如果是,那Zabbix就是直接通过你填写的外部SMTP地址、端口、账号密码等参数发送邮件,完全绕开了本地的邮件服务程序,自然本地不需要装postfix这类包。 - 调用系统兼容sendmail的命令:如果配置的是普通的
Email媒介类型,Zabbix会调用系统的sendmail命令发邮件,但这个命令不一定来自sendmail包——很多轻量工具(比如ssmtp、msmtp)会提供和sendmail兼容的命令,你可以用which sendmail找到命令路径,再用dpkg -S $(which sendmail)命令查询它属于哪个包,说不定就能找到你没注意到的轻量邮件工具。
要是你想给自定义脚本复用这个能力,也有对应思路:
- 要是用的是SMTP配置:直接在脚本里写逻辑对接同一台外部SMTP服务器就行,比如Shell里用
curl发SMTP请求,或者Python用smtplib库,参数和Zabbix里填的保持一致就行。 - 要是用的是本地sendmail兼容命令:直接在脚本里调用同一个
sendmail命令,用法和普通sendmail一样,比如echo "邮件内容" | sendmail 收件人邮箱。
你先去Zabbix前端确认下媒介类型的配置,就能精准定位啦!
备注:内容来源于stack exchange,提问作者mindithere
相关产品推荐
相关产品推荐

