如何使用PHP发送邮件时删除“via”和服务器名称?

2022-08-30 23:11:30

当我用PHP发送邮件时,destinatary会得到一个这样的标题:

   noreply@justwalk.it **via** de p3nlhg147.shr.prod.phx3.secureserver.net

我想删除“通过”部分。来自网站的大多数自动邮件都没有“via”,因此当然可以将其删除。

他们是怎么做到的?


答案 1

是的,您可以摆脱“通过”部分。以下是详细信息:

1) SPF and DKIM

首先,您需要为发送电子邮件的域设置SPF记录并启用DKIM。这些主要用于识别您的邮件是否属于垃圾邮件。

2) "From: anything@yourdomain.com"

其次,请确保将“发件人:”标头设置为要从中发送邮件的域上的电子邮件地址。不要假装成别人。如果您从 abc.com 发送消息,请使用“发件人:someone@abc.com”,而不是其他任何内容,例如 blah@def.com,yours@gmail.com 或其他任何内容。如果您希望收件人回复您的 Gmail 电子邮件而不是您的网域电子邮件,请使用“回复:”标头。发件人:“必须始终是您从中发送电子邮件的域电子邮件。

3) "Return-Path: return@yourdomain.com"

第三,也是最重要的一点,将“Return-Path: ”标头设置为与“From:”标头的域相同。为此使用mail()函数的第5个参数:

mail('recipient@example.com', 'Subject', "Message Body", $headers, '-freturn@yourdomain.com')

因此,此消息的返回路径将是“return@yourdomain.com”(紧跟在 -f 开关后面的电子邮件地址)。$headers 参数应包含所有必需的消息头。确保“发件人:”是 something@yourdomain.com。

完成这些步骤和措施后,Gmail 现在应该完全信任您来自 yourdomain.com 的邮件。邮件的“via”字段应该消失,“mail-by”字段以及“signed-by”字段应该正确显示为 yourdomain.com。

希望它有帮助!


答案 2

我也得到了同样的问题。但是我通过使用下面的代码克服了这个问题:

mail('maaaa@abcd.com', 'the subject', 'the message', null,'-faaa@abc.com');

确保最后一个参数是 -f 和电子邮件地址。

您可以添加

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";<br />
mail('maaaa@abc.com', 'the subject', 'the message body in html format', $headers,'-faaaa@abc.com');

用于电子邮件中的 html 消息正文。


推荐