如何避免我的邮件从PHP邮件()被标记为垃圾邮件?

时间:2011-10-09 20:13:20

标签: php email sendmail postfix-mta spam

我正在使用以下内容发送注册电子邮件:

$subject = 'subject is here';
$message_raw = 'e-mail text';

$message = base64_encode($message_raw);

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: base64' . "\r\n";
$headers .= 'From: papa.sk <register@papa.sk>' . "\r\n";

$sendit = mail($to, $subject, $message, $headers);

对于某些人来说,这些电子邮件会被放入垃圾邮件文件夹中(在gmail中也是如此)。

在/etc/postfix/main.cf我有这个:

myorigin = /etc/mailname
smtpd_banner = papa1.vps.websupport.sk ESMTP

不确定是否应该更改以上内容。

2 个答案:

答案 0 :(得分:3)

您可能需要为您的服务器提供反向DNS记录。

许多邮件服务器认为,如果无法查找主机名,则从主机发送的邮件是垃圾邮件。那个nslookup papa.sk应该返回一个ip地址,nslookup <ip address>应该返回papa.sk。

答案 1 :(得分:2)

php mail()功能与您的电子邮件被标记为垃圾邮件毫无关系。

电子邮件被标记为垃圾邮件发生在另一端。你不能用mail()来影响这个过程 - 因为它是另一端。

将电子邮件标记为垃圾邮件的原因可能有数千种,只要您不知道将电子邮件标记为垃圾邮件的具体原因,就无法对此进行任何操作。

有一整个行业以此为生。