PHP 如何知道主机或服务器的真实电子邮件地址?

how does PHP know the real email of the host or server?

如您所知,有很多网站 (Just search on Google) 会发送虚假电子邮件 (!),而且发送虚假电子邮件真的很容易(如您所知)。

PHP 示例:

$to = "to@to.com";
$from = "from@from.com";
$subject = "subject";
$message = "this is the message body";

$headers = "From: $from"; 
$ok = @mail($to, $subject, $message, $headers, "-f " . $from);   

是否有设置 PHP 与原始服务器(域)电子邮件,以及电子邮件服务提供商如何检测真正从原始域发送的电子邮件或者它是 FAKE

  1. 您可以使用 getmxrr() 检查 e-mail 地址中的域(在您的示例 from.com 中)是否在 DNS 区域中有一个注册的 MX 记录,它将处理传入的和外发邮件。
  2. 在 e-mail 的 header 中有类似 Received: from[ip-address] 的内容。您可以对照您为 from.com 域获得的 MX 记录进行检查。如果有多个Received: from go with the last one.

理论上,如果发送给您的 e-mail 确实是由管理给定域的邮件的服务器发送的,您可以检查此过程。

理论上是因为:垃圾邮件发送者可以解决这个问题(e.x。使用被黑的 e-mail 帐户)。但此 e-mail 帐户发出的垃圾邮件应该相对较小,因为 e-mail 提供商会检测到垃圾邮件发送者并阻止 e-mail 帐户。

在您的 dns 帐户中,您需要将 MX 记录设置为指向您的域名。

关于你的第二个问题。

收到邮件时,发件人地址可能是假的,但发送邮件的服务器的IP地址不能是假的。有许多组织和服务提供商不断更新他们的数据库,以了解每一个收到通知的垃圾邮件服务器。电子邮件服务提供商要么拥有该服务,要么使用其他一些服务提供商来过滤电子邮件。一个著名的组织是 spamhaus

希望对您有所帮助。