我在 VPS 上托管我的网站。因为我不是系统管理员,所以我不想使用自己的 VPS 来托管我的电子邮件,因为我缺乏维护邮件服务器的技术知识和专业知识。我还有一个共享托管计划,我拥有另一个域名,多年来一直完美地使用 cPanel 和电子邮件,没有任何问题。
所以,我想知道是否可以使用我的虚拟专用服务器托管我的网站和我的共享托管帐户来托管我的电子邮件。
为了尝试一下,我在 Namecheap DNS 设置上进行了以下输入:
- A 记录 | @ | VPS_IP_ADDRESS
- A 记录 | www | VPS_IP_ADDRESS
- A 记录 | 邮件 | SHARED_IP_ADDRESS
- TXT 记录 | 邮件 | v=spf1 +a +mx +ip4:SHARED_IP_ADDRESS ~all
- TXT 记录 | default._domainkey.mail | v=DKIM; k=rsa; p=*******
- CNAME 记录 | 邮件 | example.com。
- MX 记录 | 邮件 | example.com. 0
但是,我觉得我这里漏掉了一些东西。非常感谢您的帮助。
谢谢。
答案1
主要查找键是域名,因此为了清楚起见,让我们交换区域中的列:
NAME → TYPE DATA
------ ------ -------------------------------------------
@ A VPS_IP_ADDRESS
mail A SHARED_IP_ADDRESS
mail CNAME example.com
mail MX 0 example.com.
mail TXT "v=spf1 +a +mx +ip4:SHARED_IP_ADDRESS ~all"
www A VPS_IP_ADDRESS
现在一些问题应该变得更加明显了。
您的网站记录没有问题——裸域名和www
子域名都有指向 Web 服务器的 A 记录。但是,您的邮件设置却一团糟。
CNAME 记录
CNAME 表示“将此子域名完全别名为example.com
”。在您的情况下,这是 1) 不可取的,因为它会向mail
子域名添加错误的 A 记录;2) 非法,因为您不能在同一个子域名上混合 CNAME 和非 CNAME 记录;3) 非法,因为mail
子域名将成为 MX 的目标,而 MX 不允许 CNAME。
删除它。
MX 记录
当人们向 发送邮件时[email protected]
,他们会查找 上的 MX 记录example.com
– 即与收件人地址完全相同的域。他们将不会查看一些杂项子域名。
您当前的 MX 记录是反向的;它位于mail
子域上,指向根域(因此传入邮件永远不会到达共享托管服务器)。您应该将其更改为相反的方向:
NAME TYPE DATA
------ ------ -------------------------------------------
@ MX 0 mail.example.com.
mail A SHARED_IP_ADDRESS
(好吧,除非你希望你的地址是“[电子邮件保护]“......但我对此表示怀疑。)
“spf1” TXT 记录
当人们收到来自 的邮件时[email protected]
,再次他们会在 上查找“spf1”TXT 记录example.com
,与发件人地址中的记录完全相同。因此,您当前的记录也位于错误的位置:它应该位于裸域下。
NAME TYPE DATA
------ ------ -------------------------------------------
@ TXT "v=spf1 +this +that ~all"
+a
其内容也有些多余。除非您计划让 Web VPS 本身直接发送邮件,否则您不需要。(但它不应该这样做 - 它应该通过共享托管提供商的 SMTP 服务器,以便邮件能够正确进行 DKIM 签名。)
您也不需要同时使用+mx
和+ip4:SHARED_IP_ADDRESS
,因为您的 MX 记录将指向该 IP 地址反正。
“DKIM” TXT 记录
这似乎是正确的——假设您是从共享主机电子邮件提供商处获得它的。