我的网站和电子邮件托管在共享主机上。不幸的是,他们的服务器使用的是 CPanel,因此他们的垃圾邮件防护选项有限。
我还有一个 VPS,用于测试和托管其他一些内容(为什么不将 VPS 用于网站?我不想担心备份!) - 我可以将它用作我的域的 MX,使用共享主机作为传输图 - 我曾经运行过自己的 dedi,因此准备好了 Puppet 模块用于邮件服务器。
VPS 主机要求我使用 Postfix 邮件中继来确保我不会从他们的 IP 范围发送垃圾邮件。
我可以结合使用 Postfixtransport_maps
和relay_host
指令来让我的 MX 将我的域的所有邮件转发到共享主机,但通过 VPS 主机的中继吗?
我期望的结果的进一步例子:
example.com
有一个 MX 记录(为了合理性)vps.example.com
vps.example.com
接收传入邮件,然后查阅transport_maps
并将其转发到最终目的地sharedhost.example.com
,使用中继relayvps.example.net
作为“下一跳”
答案1
我个人不想这样做。但您可以在 VPS 上使用转发地址,如下所示:
[email protected] -> [email protected]
[email protected] -> [email protected]
...
然后将共享主机配置为 subdomain.example.org 的 MX。然后使用transport_maps
transport_maps = hash:/etc/postfix/transport
输入/etc/postfix/transport
@subdomain.example.org smtp:[vps.relay.tld]
使用postmap
来更新 transport.db 中的查找表postmap /etc/postfix/transport
。
如果你需要中继的凭证,你可以在/etc/postfix/saslpass
vps.relay.tld username:password
并用于postmap /etc/postfix/saslpass
创建/更新查找表。
在共享主机上添加子域并将邮件转发回原始地址。但我不确定转发是否会破坏 VPS 上的垃圾邮件保护。
答案2
是的,但是双方都需要编写一些脚本。
如果没有脚本你就无法做到这一点,如果可以做到这一点,那将是一个严重的安全漏洞(例如,邮件可以直接发送到防火墙后面的内部服务器)。
最简单的脚本解决方案是将要发送的邮件打包成另一封邮件作为附件,然后发送给目标。在目标上,它由 .procmailrc 或类似程序等待,该程序提取附件并将其放入目标的外发邮件队列中。我在 perl 中完成了两边的操作。