Networking 解析gmail.com邮件服务器

Networking 解析gmail.com邮件服务器,networking,smtp,dns,telnet,dig,Networking,Smtp,Dns,Telnet,Dig,我正在尝试使用dig命令查找gmail.com邮件服务器,并使用telnet验证dig命令返回的结果 $ dig gmail.com MX ; <<>> DiG 9.7.3 <<>> gmail.com MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54145 ;; flags: q

我正在尝试使用dig命令查找gmail.com邮件服务器,并使用telnet验证dig命令返回的结果

$ dig gmail.com MX

; <<>> DiG 9.7.3 <<>> gmail.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54145
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;gmail.com.         IN  MX

;; ANSWER SECTION:
gmail.com.      800 IN  MX  10 alt1.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  20 alt2.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  30 alt3.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  40 alt4.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  5 gmail-smtp-in.l.google.com.

;; Query time: 14 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Dec 27 02:09:50 2011
;; MSG SIZE  rcvd: 150
$dig gmail.com MX
;  挖掘9.7.3 gmail.com MX
;; 全局选项:+cmd
;; 得到答案:
;; ->>总括理论
一般来说,SMTP服务器有两种不同的功能,这两种功能经常被合并:发送邮件提交和接收来自其他网络的邮件。这两个功能使用相同的SMTP协议执行。通常这两个功能由同一台机器执行,历史上它们甚至可以在同一个端口上执行。所以很容易理解为什么人们把这两个功能混为一谈

虽然这两个功能仍然使用相同的SMTP协议,但在同一端口上执行这些功能的情况越来越不真实(因为系统管理员通过阻止传出端口25流量来防止其客户发送垃圾邮件)。如今,SMTP提交通常使用SSL加密,而在两个不同的网络之间传输邮件仍然是纯文本的。由于谷歌网络的复杂性,如果这两个功能在不同的机器上执行,我也不会感到惊讶。(免责声明:我为谷歌工作,但我对GMail的运作一无所知。)

  • 发送邮件提交。当您从GMail发送电子邮件时,特别是当您配置电子邮件客户端(如Evolution)从您的GMail帐户发送电子邮件时,您必须配置SMTP服务器以用于发送邮件。您的电子邮件客户端直接连接到此SMTP服务器,该SMTP服务器负责将邮件发送到internet上其他位置的正确位置。这通常使用特殊端口进行配置,并且需要登录信息,以便只有授权用户才能发送电子邮件。这是上面的支持链接正在处理的功能。您将电子邮件客户端配置为在端口587上使用域名
    smtp.gmail.com
    ,我认为您的电子邮件客户端通过使用DNS
    A
    记录进行普通域名查找来查找此服务器

  • 从其他网络接收电子邮件。将您的邮件中继到其他网络的SMTP服务器查找
    gmail.com
    MX
    记录(在您的情况下,发现发送邮件的位置是
    alt1.gmail SMTP in.l.google.com
    ),并将邮件发送到该主机上的端口25。这是您在DIG中查找的内容,并使用telnet进行了测试

    现在,当您尝试从消费者互联网连接进行Telnet时,为什么在.l.google.com
  • 的端口25中没有看到
    alt1.gmail smtp?答案是,为了防止传出垃圾邮件,您的ISP会阻止端口25上传出的流量。因此,如果不通过ISP的SMTP服务器或其他需要登录并在587端口接收提交的SMTP服务器,则无法将任何内容发送到
    gmail.com
    端口25

    你想做的事。 所以你在尝试执行函数2。您自己对
    gmail.com
    进行了MX查找,发现它对应于.l.google.com
    中的服务器
    alt1.gmail smtp。然后,您尝试在.l.google.com
    中的
    alt1.gmail smtp上远程登录587端口。这不起作用,因为
    alt1.gmail smtp in.l.google.com
    没有在该端口上侦听(它只需要在端口25上侦听即可执行功能2)。然后,您尝试在.l.google.com
    中的alt1.gmail smtp上远程登录到端口25。这不起作用,因为您的ISP阻止了端口25上的传出连接


    要想向gmail.com发送电子邮件,你需要做的是找到一个执行功能1的服务器,然后通过它发送电子邮件。或者,找一家ISP,它不介意成为垃圾邮件天堂,也不阻止端口25上的传出流量。(实际上,请不要这样做)

    我认为您误解了我的端口验证服务器(可能是我应该明确提到我测试开放端口的服务器名称)。我没有在“gmail.com”中检查开放端口。我已经检查了“alt1.gmail smtp in.l.google.com”端口25和587,dig将其报告为gmail.com的邮件服务器。我不想从gmail.com发送电子邮件。假设我必须编写一个邮件客户端,它必须将电子邮件发送到“username@gmail.com" . 我首先要找到的是gmail.com的邮件服务器是什么。如何找到它。谢谢更新答案。我对ISP的端口阻塞没有什么疑问。我可以连接到“smtp.gmail.com”的端口25,但无法连接到“alt1.gmail smtp in.l.google.com”的端口25。那么,为什么ISP会阻止“alt1.gmail smtp in.l.google.com”而不是“smtp.gmail.com”的端口25呢。是否有任何方法可以确定ISP是否阻止了一个端口(我怀疑“alt1.gmail smtp in.l.google.com”的端口25是否真的打开了)。还有一个问题是,为什么MX记录中没有关于“smtp.gmail.com”的信息。关于ISP端口阻塞问题,您是对的。我曾尝试通过不同的ISP提供商连接到“alt1.gmail smtp in.l.google.com”服务器的端口25,该端口已打开。然而,仍然存在的一个问题是,为什么MX记录中不存在“smtp.gmail.com”。@Talespin_Kit:smtp.gmail.com不存在于MX记录中,因为
    smtp.gmail.com
    仅包含peforms函数1,而
    gmail.com
    的MX记录仅包含有关执行函数2的服务器的信息。