Plesk与Postfix环境下绕过25号出站端口发送邮件的配置咨询
Plesk与Postfix环境下绕过25号出站端口发送邮件的配置咨询
老哥,我来帮你一步步解决这个问题——既然你已经搞定了入站邮件的端口配置,还知道要调整/etc/postfix/main.cf,那咱们直接切入正题:出站25端口被封完全可以用其他端口绕过去,这里给你两种实用方案,按需选择就行:
方案一:直接修改Postfix使用替代端口发送
这种方法适合你想让Postfix直接用非25端口发信的场景,常见的替代端口是587(STARTTLS加密)或465(SSL加密):
- 登录服务器,编辑Postfix主配置文件:
nano /etc/postfix/main.cf - 找到
smtp_port参数,要是没有就新增一行:
如果选择用465端口,还要额外添加以下两行开启SSL加密:smtp_port = 587smtp_tls_wrappermode = yes smtp_tls_security_level = encrypt - 保存文件后,重启Postfix服务生效:
systemctl restart postfix - 如果你习惯用Plesk面板操作,也可以通过「工具与设置」→「邮件服务器设置」→「邮件发送」路径,找到端口设置项,改成你想用的端口,Plesk会自动同步到Postfix配置里。
方案二:配置SMTP中继(更推荐)
直接改端口的话,部分收件方邮件服务器可能不支持非25端口的入站,导致邮件投递失败。用SMTP中继(比如域名邮箱提供商、专业邮件服务平台,甚至部分VPS厂商自带的中继服务)会更稳定:
- 同样编辑
/etc/postfix/main.cf,添加或修改以下配置项(替换成你的中继服务商信息):relayhost = [smtp.your-relay-provider.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = encrypt - 创建认证密码文件
/etc/postfix/sasl_passwd,写入中继服务商的账号密码:[smtp.your-relay-provider.com]:587 你的中继账号:你的中继密码 - 生成Postfix可识别的哈希映射文件:
postmap /etc/postfix/sasl_passwd - 设置文件权限(避免密码泄露):
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db - 重启Postfix服务:
systemctl restart postfix - 用Plesk面板操作的话,直接走「工具与设置」→「邮件服务器设置」→「邮件发送」→「使用外部SMTP服务器」,填写中继服务商的信息即可,不用手动改配置文件更省心。
注意事项
- 先确认你的VPS服务商允许出站587/465端口(大部分服务商都会放行这两个端口,25端口通常是为了反垃圾邮件被封禁)
- 如果用中继服务,一定要确认服务商支持的端口和认证方式,有些可能用2525作为替代端口
- 配置完成后可以用这条命令测试发送是否成功:
echo "测试邮件内容" | mail -s "测试主题" your-test-email@example.com
备注:内容来源于stack exchange,提问作者Borgann




