![如果我只有域名,如何找到 MSA 服务器的名称?](https://linux22.com/image/1458377/%E5%A6%82%E6%9E%9C%E6%88%91%E5%8F%AA%E6%9C%89%E5%9F%9F%E5%90%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E6%89%BE%E5%88%B0%20MSA%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
编辑(我问的是什么不太清楚):
我想将电子邮件从我的家庭网络提交到 Verizon MSA,从而将电子邮件发送到我的 Verizon 地址。所以我的问题是:如果我只有域名,我该如何找到 MSA 服务器的名称。(我错误地要求 MX 服务器。)我想可靠地从到verizon.net
,smtp.verizon.net
这样我就可以在程序中复制它。我仍然认为,如果您正在编写一个程序,让用户输入他们的电子邮件地址和凭据以发送电子邮件,这是一个有价值的问题从地址。
但一般来说,您只需找到一次 MSA,即可发送所有电子邮件。因为 MSA 会为您找到目标 MX,而且 MX 服务器通常会阻止动态 IP 范围。
我正在尝试从我的 Python 脚本向我自己发送错误日志电子邮件。我能够使用此服务器成功向 Yahoo 地址发送电子邮件:smtp.mail.yahoo.com
。但我想向 Verizon 地址发送电子邮件。
如何查找邮件服务器[email protected]
?我使用的是 Linux,并尝试过:
dig -t ANY verizon.net
:
; <<>> DiG 9.9.2-P1 <<>> -t ANY verizon.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28223
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;verizon.net. IN ANY
;; ANSWER SECTION:
verizon.net. 260 IN MX 0 relay.verizon.net.
verizon.net. 218 IN A 206.46.232.39
;; Query time: 107 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed Jul 22 20:26:42 2015
;; MSG SIZE rcvd: 78
host -t mx verizon.net
:
verizon.net mail is handled by 0 relay.verizon.net
为了比较,host -t mx yahoo.com
:
yahoo.com mail is handled by 1 mta6.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta5.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta7.am0.yahoodns.net.
这些命令不起作用。
答案1
征求意见稿 (RFC) 6186,“使用 SRV 记录定位电子邮件提交/访问服务”指定组织如何使用服务 (SRV)DNS 记录用于指定他们用于电子邮件服务的服务器。邮件提交代理 (MSA)可以通过 SRV 记录指定。例如:
_submission._tcp.example.com. SRV 0 1 587 mail.example.com.
如果您不熟悉 RFC,它们是制定互联网标准的机制。例如,RFC 4409邮件消息提交也适用于 MSA。还有RFC 2782, "用于指定服务位置的 DNS RR (DNS SRV)"
如果已为指定其 MSA 的域创建了 SRV 记录,则可以使用 nslookup、dig 等查找 MSA。但是 Verizon、AOL、Comcast、Yahoo 和其他为家庭用户提供电子邮件服务的大型公司不会创建此类记录,而且我不知道有哪家公司会这样做,因此,对于他们来说,如果 MSA 与 MSA 不同,则尝试通过 DNS 查询查找 MSA 是徒劳的邮件交换器 (MX)。如果我需要帮助某人配置其电子邮件客户端以使用其 ISP 的 MSA,而 MX 查询返回的服务器不起作用,我通常只需搜索“configure Outlook site:verizon.net”之类的内容,即搜索如何配置特定电子邮件客户端,并指定我希望将搜索限制在属于 ISP 的网站。大多数 ISP 都会为其用户提供帮助页面,告诉他们如何配置各种电子邮件客户端,从而显示 MSA。
答案2
您有两个选择。
您无需使用中继,直接使用负责该组织的目标邮件服务器,您可以使用您指定的
dig
和host
命令以及来查找该服务器nslookup -q=mx
。在这种情况下,您不需要身份验证(尽管您可能需要使用 SSL 和
STARTTLS
)。您还可以设置任何您想要的发件人地址(前提是您的主机通过了该域的 SPF 检查或允许 SPF 失败),但只允许目标组织的收件人地址。如果您的 ISP 过滤了出站 SMTP 流量,您可能无法使用此选项。
您使用中继(通常是您的 ISP 提供的“外发邮件服务器”),它将接受您的邮件,然后将其中继到使用 DNS 查询找到的目标服务器,就像选项 1 中的查询一样。
在这种情况下,您通常必须通过用户名和密码明确地或通过 IP 隐式地进行身份验证。您可能能够或不能设置您想要的任何 FROM 地址,但您应该能够设置任何 TO 地址。