如何查看Postfix邮件配置设置?
嗨,我来帮你搞定这个问题!你说继承了一台用Postfix通过外部邮件服务器发状态邮件的服务器,想查当前的配置而非重新设置,已经看过/etc/postfix/main.cf和master.cf没找到关键信息,对吧?下面给你几个实用的方法:
用Postfix自带命令查看生效配置
Postfix有个专门的命令postconf,它会输出当前所有实际生效的配置(包括main.cf以及被包含的其他配置文件里的内容),比直接看单个配置文件靠谱多了。直接跑:sudo postconf要是输出太多,你可以过滤和外部邮件服务器相关的关键参数,比如:
sudo postconf | grep -E 'relayhost|smtp_sasl_auth_enable|smtp_sasl_password_maps|smtp_sasl_security_options'解释下这些参数:
relayhost:就是你要找的外部邮件服务器地址smtp_sasl_auth_enable:是否开启了SMTP认证(如果外部服务器需要用户名密码,这个值应该是yes)smtp_sasl_password_maps:存储用户名和密码的位置,通常是一个文件(比如hash:/etc/postfix/sasl_passwd)smtp_sasl_security_options:认证的安全选项
查看SMTP认证的密码文件
如果上面的smtp_sasl_password_maps指向了某个文件(比如/etc/postfix/sasl_passwd),你可以用sudo查看这个文件的内容:sudo cat /etc/postfix/sasl_passwd注意:Postfix通常会把这个文件转换成hash格式的
.db文件(比如sasl_passwd.db),直接看.db文件是乱码,所以要看原始的文本文件。如果找不到原始文件,可能需要重新生成,但你现在只是查看的话,先找对应的文本文件就行。检查是否有其他被包含的配置文件
有时候主配置文件main.cf会用include指令引入其他配置文件,你可以用下面的命令看看有没有这类设置:sudo postconf | grep include如果有,比如
include=/etc/postfix/extra_config,记得去查看对应的文件,里面可能藏着你要找的外部服务器配置。关于mail命令的小补充
你用的mail命令(来自mailutils)其实是调用系统的MTA(也就是Postfix)来发邮件的,所以它本身没有独立的外部邮件服务器配置,所有发件相关的设置都在Postfix里,不用去查mailutils的单独配置哦。
备注:内容来源于stack exchange,提问作者TheGlasses

