我有一台 Linux 服务器,刚刚安装了 Postfix。
我是电子邮件服务器的新手...
无论如何,我能够使用 php:s 邮件功能发送邮件,但它们被 google 邮件视为“垃圾邮件”(可能大多数其他电子邮件帐户也是如此,尚未测试 hotmail、yahoo 等)。
我猜这与 SPF 有关,但我不知道 SPF 是什么,如何解决它等等......
有人能解释一下如何使我的电子邮件成为“非垃圾邮件”吗?
操作系统是 Ubuntu 9.10。
如果您需要更多输入,请告诉我...
谢谢
PS:如何在不使用防火墙的情况下禁用发送到我的 postfix(电子邮件服务器)的所有邮件,也许可以使用 main.cf?
答案1
好的,您需要做 3 件事(非常不同)来避免误报。
需要设置反向 DNS,以便服务器的 IP 解析为服务器的主机名。您需要请求托管服务提供商/网络块所有者执行此操作,您不能直接自行执行。
防晒指数。这涉及向您的服务器所属的 DNS 区域记录添加条目。它不涉及服务器配置(除非它也是域的名称服务器)。SPF 发生器可能会有帮助。
设置密钥管理信息系统在您的服务器上。不是太难,
dkim-filter
Debain 系统上的软件包 IIRC,谷歌上有一个教程。
你还应该检查你的域名和 IP 是否在某个阻止列表中。你需要谷歌搜索并阅读很多还有——邮政局长不是一件容易的工作。
另请参阅MX 工具箱。
如果您发布您的服务器名称,我可以提供进一步的指示。
答案2
我怀疑你的服务器在黑名单上: http://www.dnsblcheck.co.uk/
答案3
避免邮件被标记为垃圾邮件的一个常用技巧是始终使用有效的“发件人:”标头发送邮件。
例如,如果您的主机名是“bobs-server”,并且您使用本地邮件命令发送邮件(默认情况下,这是 PHP 的 mail() 函数执行的操作),它看起来会来自“apache@bobs-server”之类的东西。
当然,在开放的互联网上,bobs-server 并不是真正的域,因此查找此主机的 A 或 MX 记录的尝试将失败。您应该为您的服务器(或至少是它来自的外部 IP/NAT)提供一个有效的 A 记录(和/或 MX 记录,如果您想接受邮件),然后使用发件人标头进行匹配,例如:
From: [email protected]
这将消除许多将您的邮件视为即时垃圾邮件的主机。SPF 记录实际上尚未在互联网上完全实现,并且通常不用于权威地判断某封邮件是否为垃圾邮件。
希望有所帮助。
答案4
我不是系统管理员,所以其他人可能可以更好地回答:)
我知道有些系统会拦截没有 MX 记录反向 DNS 条目的邮件。基本上是一种查找服务器 IP 地址并将其与域匹配的方法。向其他人询问详细信息 :-)