我使用此代码在 php 中发送邮件:
mail($to,$subject,$message,$headers);
它工作得很好,但是如果我们检查邮件的完整标题,它将显示与该邮件一起发送的站点的服务器。我想知道是否有任何可能的方法,以便我们可以更改其完整标题并在邮件的完整标题中显示其他内容。
提前致谢
我使用此代码在 php 中发送邮件:
mail($to,$subject,$message,$headers);
它工作得很好,但是如果我们检查邮件的完整标题,它将显示与该邮件一起发送的站点的服务器。我想知道是否有任何可能的方法,以便我们可以更改其完整标题并在邮件的完整标题中显示其他内容。
提前致谢
不可以。您不能更改某些标头,因为这些标头是在邮件传递过程中由邮件服务器添加的(因此,如果您无法访问)。您可以在邮件中添加自己的标头,但 smtpd 仍会添加他们的标头。
PS:不要使用mail()
。使用更复杂的东西,如 PHPMailer 或类似的包。
所有邮件服务器都会在邮件中添加一个Received
标题行。您可以将自己的服务器配置为不添加此类标头,甚至删除其他此类标头,但您无法控制其他邮件服务器的行为。这意味着您环境之外的第一台服务器将添加您最后一台服务器的 IP 和主机名,您对此无能为力。
当您通过任何服务/API 发送邮件时,您可以发送您想要的任何标题,但它取决于客户端(gmail、exchange 等)以显示要显示的数据类型。此外,SMTP 服务器会修改或覆盖它认为必要的标头数据。
您的标头数据在其传输过程中基本上经过至少 2 个过滤层。