如何使用PHP发送邮件时删除“via”和服务器名称?
当我用PHP发送邮件时,destinatary会得到一个这样的标题:
noreply@justwalk.it **via** de p3nlhg147.shr.prod.phx3.secureserver.net
我想删除“通过”部分。来自网站的大多数自动邮件都没有“via”,因此当然可以将其删除。
他们是怎么做到的?
当我用PHP发送邮件时,destinatary会得到一个这样的标题:
noreply@justwalk.it **via** de p3nlhg147.shr.prod.phx3.secureserver.net
我想删除“通过”部分。来自网站的大多数自动邮件都没有“via”,因此当然可以将其删除。
他们是怎么做到的?
是的,您可以摆脱“通过”部分。以下是详细信息:
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。
希望它有帮助!
我也得到了同样的问题。但是我通过使用下面的代码克服了这个问题:
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 消息正文。