我想发一封电子邮件从一个站点我建立的,但它结束了在雅虎的垃圾邮件。它的电子邮件发送全权证书。我能做些什么来使其合法化?

$header = "From: site <sales@site.com>\r\n";
$header .= "To: $name <$email>\r\n";
$header .= "Subject: $subject\r\n";
$header .= "Reply-To: site <sales@site.com>" . "\r\n";
$header .= "MIME-VERSION: 1.0\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$phpversion = phpversion();
$header .= "X-Mailer: PHP v$phpversion\r\n";
mail($email,$subject,$body,$header);
有帮助吗?

解决方案

除了Ted Percival的建议外,您还可以尝试使用 PHPMailer 为您创建电子邮件,而不是手动构建标题。我已经广泛使用这个课程,并且没有任何麻烦,因为雅虎或其他任何人都拒绝将电子邮件作为垃圾邮件拒绝。

其他提示

  • 不用HTML在你的电子邮件。
  • 送它通过合法的邮件服务器与静态IP和反DNS(PTR),分机是真主的名字(和相匹配的前进查找).
  • 包括一个消息-身份证(或确保当地邮件增加了一个为您)。
  • 运行,你的电子邮件通过 垃圾邮件刺客 看看这不好-记分规则相匹配。避免匹配。
  • 使用 域名密钥确定的邮件 来进行数字签名的信息。

我刚从Yahoo!成功尝试了以下内容!网页寄存帐户:

$email = "me@site.com";
$subject = "Simple test";
$body = "Simple test";
$header = "From: site \r\n";
$header .= "To: $name \r\n";
$header .= "Subject: $subject\r\n";
$header .= "Reply-To: site " . "\r\n";
$header .= "MIME-VERSION: 1.0\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$phpversion = phpversion();
$header .= "X-Mailer: PHP v$phpversion\r\n";
mail($email,$subject,$body,$header);

但是,您的标题中有一些重复项,您只需要执行以下操作:

$email = "me@site.com";
$subject = "Simple test";
$body = "Simple test";
$header = "From: site \r\n";
$header .= "MIME-VERSION: 1.0\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$phpversion = phpversion();
$header .= "X-Mailer: PHP v$phpversion\r\n";
mail($email,$subject,$body,$header);

'sendmail'(在PHP mail()函数下面)还有可能需要额外的参数。如果您没有使用您设置的返回标头(例如Return-Path)设置问题,则可能需要使用第五个 mail()参数。例如:

mail('recipient@domain.com', 'Subject', $mail_body, $headers, " -f sender@domain.com");

还有一些证据表明真正的香草邮件可能有问题!希望你的'postfix'作为PHP在目标服务器上的底层mail()支持。

Ted的建议很好,Tim也是如此,但我能够可靠地通过电子邮件发送到Yahoo / Hotmail /等的唯一方法就是使用PEAR电子邮件课程。尝试那些&amp; (假设你的服务器没问题)我几乎可以保证它能正常工作。

特德和蒂姆提出了很好的建议。和Shabbyrobe一样。我们使用PHPMailer,垃圾邮件过滤器没有任何问题。

有一点需要注意的是,如果您使用的是MIME格式,许多垃圾邮件过滤器都会计算不会有针对您的文本版本。您可以自己添加所有标题和文本版本,或者让PHPMailer或PEAR邮件库为您处理。拥有文本版本可能会有所帮助,也可能没有帮助,但这是一种良好的做法和用户友好。

我意识到您的代码示例就是这样 - 一个示例,但值得一说:不要只是将用户提供的数据丢弃到您的邮件头中。确保验证它是您期望的数据。将一个php邮件脚本变成一个开放的中继是没有用的,没人会想要。

检查rfc 822和rfc 2045的电子邮件格式。我发现python的Email类很容易使用。我认为php的PEAR也是如此(根据之前的邮件)。标题和正文也用“\ r \ n \ r \ n”分隔,不确定您的代码是否会自动插入,但您可以尝试将其附加到标题中。

我不认为DK / SPF可能是必要的(因为有很多网络服务器没有DK / SPF支持)。可能有很多因素可能导致它被阻止(至少10K不同的标准和方法...... p0f,灰名单,灰名单,黑名单等等)。确保您的电子邮件格式正确(这会产生很大的不同)。查看为您生成完整标题的库..这样您最不可能犯错误。

添加SPF记录非常简单。你应该试试。

这个是用于dreamhost加googlemail 你还应该给你发网络服务器的IP地址(在我的情况下,googlemail之前的行) 最后一行告诉服务器进行软拒绝(标记为垃圾邮件但不删除)我正在使用它而不是“ - ” (删除),因为谷歌文档说: - )

这是TXT记录 V = SPF1 ip4:64.111.100.0/24 ip4:66.33.201.0/24 ip4:66.33.216.0/24 ip4:208.97.132.0/24 ip4:208.97.187.0/24 ip4:208.113.200.0/24 ip4:208.113.244.0/24 ip4:208.97.132.74 ip4:67.205.36.71 包括:aspmx.googlemail.com mx~all

希望有所帮助

scroll top