我曾尝试了解 SPF,但所使用的术语超出了我的经验,所以现在我向你们求助。
我有一个虚拟专用服务器(虚拟专用服务器) 是我自己管理的。
我已经安装后缀并有一个名为的服务器:
server1.domain.se
现在我的 VPS 的 IP 例如是这样的:
111.111.11.1
然后我有我的领域注册于互联网服务提供商,我可以手动设置自己的DNS 记录。
我已经设置了这些记录(IP 替换为“111.111.11.1”):
NAME TYPE DATA
www.domain.se A 111.111.11.1
domain.se A 111.111.11.1
server1.domain.se A 111.111.11.1
domain.se TXT v=spf1 a mx ptr ~all
当我使用 php:s mail 函数发送电子邮件时,gmail、hotmail 和所有其他电子邮件服务器都认为这些电子邮件是垃圾邮件。这是为什么?
以下是我在 php 中发送邮件的方法:
$mail_message= "THE MESSAGE GOES HERE";
$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: Domain <[email protected]>"."\n";
$subject="Subject goes here";
mail($email, '=?UTF-8?B?'.base64_encode($subject).'?=', $mail_message, $headers, '[email protected]');
以上是电子邮件地址[电子邮件保护]根本不存在,只是让你知道。
正如我之前所说,我对电子邮件服务器非常陌生,所以请详细解释如何解决这个问题......
如果您需要更多输入,例如我的 postfix 配置或其他内容,请告诉我。
谢谢
答案1
我会尝试了解邮件被拦截的原因。尝试在 Hotmail 上设置一个测试电子邮件帐户并向该帐户发送邮件。如果邮件最终被归入垃圾邮件文件夹,请查看带有完整邮件头的原始邮件。垃圾邮件过滤器通常会附加有关导致系统认为邮件为垃圾邮件的规则的邮件头信息。
假设您有机器的 root 访问权限,我会在您发送测试消息时运行 tcpdump 来查看事务。通常另一端的 MTA 会向您提供阻止的原因。
tcpdump -s 0 -w - port 25 | strings
答案2
定义 spf 不是最终的解决方案;使用 rDNS,就像之前有人建议的那样,在互联网上的 RBL 中查找您的 IP - 例如,参见 www.anti-abuse.org,考虑为 yahoo/gmail 安装域密钥,以便在(几乎)任何情况下(批量邮件等)接受您的电子邮件
如果你想亲自动手,可以发布你的 postconf -n 输出
答案3
您是否已与 ISP 设置 RDNS?缺少反向指针是邮件被其他服务器视为垃圾邮件的最常见原因。
答案4
通过 ISP 的邮件服务器进行中继。配置您的邮件服务器,将所有外发邮件转发给它,直到您解决问题为止,
在您的 PTR 记录指向您的域之前,您可能会遇到问题。您必须与您的 ISP 安排此事。您是否有静态 IP 地址,如果没有,您不应该尝试直接发送到互联网,并冒着丢失传入电子邮件的风险。
另外,请检查您的服务器认为它的名称是什么,这应该是 server1.domain.se。如果它只是说 server1 或 111.111.11.1,则您可能无法向许多服务器发送电子邮件。
阅读您收到的退回邮件,因为它们可能会提供您被归类为垃圾邮件的原因。另外,请在 spamhaus.org 上检查您的 IP 地址。如果您在那里被阻止,您将遇到许多服务器问题。还有其他网站会为您检查多个黑名单。