当我用PHP发送邮件时,destinatary会得到一个像这样的标题:
noreply@justwalk.it **via** de p3nlhg147.shr.prod.phx3.secureserver.net
我想删除“via”部分。来自网站的大多数自动邮件都没有“通过”,所以当然可以删除它。
他们是如何做到的?
答案 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);
对我来说很成功,让我们从您的角度进行检查。