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

时间:2011-11-23 01:37:24

标签: php email

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

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

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

他们是如何做到的?

5 个答案:

答案 0 :(得分:22)

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

1) SPF and DKIM

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

2) "From: anything@yourdomain.com"

其次,请确保将“发件人:”标题设置为您要发送邮件的域中的电子邮件地址。不要假装成别人。如果您从abc.com发送消息,请使用“From: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的邮件。消息的“通过”字段应该消失,“已邮寄”字段以及“已签名”字段应正确显示为yourdomain.com。

希望它有所帮助!

答案 1 :(得分:8)

我也提出了同样的问题。但我通过使用以下代码克服了这个问题:

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邮件正文。

答案 2 :(得分:1)

这可能是您的MTA添加的,但您并未说明您使用的是哪个MTA。

我建议不要通过PHP mail()功能发送邮件,而是通过SMTP发送邮件,甚至可能使用SMTP-Auth,使用类似PHPMailer的邮件。

答案 3 :(得分:1)

在此处查看Google对此的评论:http://support.google.com/mail/bin/answer.py?hl=en&ctx=mail&answer=1311182

一切顺利!

答案 4 :(得分:0)

@Mujibur也正确,但是我用过。但是也没有错过Headers。

mail($to, $subject, $message, $headers, '-f'.$from_email_address);

对我来说很成功,让我们从您的角度进行检查。