为什么我可以从我不拥有的域发送电子邮件?



我最近在摆弄邮件功能时发现了一个真正困扰我的问题!

我在PHP中使用了类似格式的命令:

mail("client@example.com","My subject", "IT WORKED", "From: contact@domainidontown.com");

我意识到的是,无论我把什么电子邮件放在"来自"部分,电子邮件总是发送(虽然它确实进入垃圾文件夹,但这可能是因为电子邮件的内容)!!

我的问题是:
  • 为什么这个工作?当然,应该有一些认证过程,以确保我实际上拥有的域名和电子邮件是真正的域名发送!
  • 是什么阻止我假装来自银行或贝宝或其他东西并实施欺诈
  • 作为用户,我如何确保我收到的电子邮件确实来自发件人?我的检查方式一直是查看发件人的电子邮件地址。但似乎我可以从任何电子邮件地址发送任何电子邮件(即使是我不拥有的),它仍然发送!

注意:我使用outlook.com作为我的电子邮件客户端(web版本)。不是桌面!)

我本想继续我的实验,看看它是否适用于电子邮件:contact@paypal.com,但我害怕我可能做了一些非法的事情,或者我的IP将被列入黑名单。

是的,你是正确的,没有任何技术上阻止你作为另一个用户发送电子邮件。这被定义为简单邮件传输协议(SMTP)的一部分。但是,有一些身份验证过程可以尝试在接收端上识别像这样发送的邮件:

  1. DKIM(域密钥识别邮件)https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
  2. SPF(发送方策略框架)https://en.wikipedia.org/wiki/Sender_Policy_Framework

很可能实际上是这些身份验证过程的失败将您的邮件定向到垃圾文件夹,而不是/以及消息内容。结合电子邮件客户端UI中的其他元素(例如Thunderbird中的"欺诈检测"),作为用户,这会提醒您该电子邮件可能不可信。

DKIM

DKIM通过非对称密钥工作。只有域名的真正所有者知道用于对电子邮件进行数字签名的私有部分,并且他们将公共部分作为TXT记录发布在他们的DNS区域中。

当某人收到一封声称来自example.com的电子邮件时,他们的电子邮件客户端将检查消息上的DKIM-Signature头,使用已发布的公共密钥的一半来验证消息是否已正确签名。由于签名还包括消息内容的散列,这也确保了内容在传输过程中没有被更改,并确保发送者是合法的。

SPF

域名的真正所有者发布了允许以其名义发送电子邮件的主机列表,同样以TXT记录的形式在其DNS区域中发布。

当某人收到一封声称来自example.com的电子邮件时,他们的电子邮件客户端将检查发送电子邮件的主机是否已获得域所有者的授权。

相关内容

最新更新