【发布时间】:2019-09-15 16:55:34
【问题描述】:
searching for a way to send an email from Python code 时,我偶然发现了以下内容:
当我使用host -t mx gmail.com 命令(我从this answer“借用”)进行MX 查找时,我得到以下信息:
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
gmail.com mail is handled by 30 alt3.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 20 alt2.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 40 alt4.gmail-smtp-in.l.google.com.
official gmail docs 中没有提到这些服务器(那里的服务器:smtp-relay.gmail.com、smtp.gmail.com、aspmx.l.google.com)。我的理解是 MX 查找应该返回负责处理域邮件的服务器地址(或它们的列表)。
我的问题是:
- 为什么 MX 查找没有返回文档中提到的任何 smtps?
- MX 查找究竟返回了哪些服务器?
- MX 查找返回的服务器能否用于向域电子邮件(本例中为 gmail)发送电子邮件?
- MX 查找返回的服务器能否用于向任意域电子邮件发送电子邮件?
- 如果答案为“是”,请回答前面两个问题中的任何一个 - 使用这些服务器需要什么身份验证?
【问题讨论】:
-
我认为您的问题的核心是您混合了 MTA(邮件传输代理)和 MSA(邮件提交代理)。如果世界上任何人需要向someone@gmail.com 发送电子邮件,它需要找出哪些MTA 接收此特定域的电子邮件。因此,MX 查找和与返回名称的连接。如果提供者 gmail.com 的 a 客户 想要向任何人(无论是否是客户)发送电子邮件,它需要找到提供者的 MSA,即发送到哪里消息。这不是由 MX 记录发现的,而是在您链接的文档中。有时 MTA = MSA,但不是大型主机。
-
@PatrickMevzek,感谢您清楚地概述了我误解的本质。