gpt4 book ai didi

php - 绕过 Gmail 的垃圾邮件过滤器(从共享主机使用 PHP 发送的邮件)

转载 作者:IT王子 更新时间:2023-10-29 00:17:48 25 4
gpt4 key购买 nike

TL;DR:从共享主机(例如来自 Unoeuro 或 One.com 的廉价域名)发送的邮件最终会变成垃圾邮件。如何修复?


我制作了一个邮件系统,它首先生成一个 PDF 文件(使用 FPDF ),然后它使用 PHP 的 Swiftmailer 将 PDF 文件作为附件发送。这封电子邮件已发送给 130 人(作为“一次性”发票)。但它落入了几乎所有人的垃圾邮件过滤器。我尝试调整 SwiftMailers 标题设置,但没有任何运气。甚至我以前没有发送过的邮件(经过全面测试)。这是我的初始设置:

function sendMailEt($toEmail, $toName, $invoiceNumber){

require_once('includes/lib/swift_required.php');

$transport = Swift_SmtpTransport::newInstance('mailout.one.com', 25)
->setUsername('EMAIL-ACCOUNT1@THE-DOMAIN.DK')
->setPassword('THE-PASSWORD')
;

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance('FROM COMPANY')
->setSubject('Thanks for signing up - COMPANY')
->setFrom(array('EMAIL-ACCOUNT1@THE-DOMAIN.DK' => 'Company name'))
->setTo(array($toEmail => $toName))
->setBody('A brief body, that explains that this is an invoice and that it has to be paid within 5 days. (written in danish)')
->addPart('A brief body, that explains that this is an invoice and that it has to be paid within 5 days. (written in danish)', 'text/html')

->attach(Swift_Attachment::fromPath('/URL-TO-THE-PDF-FILE.pdf'))
;

$result = $mailer->send($message);
}

我还尝试使用 PHP 的原生 mail() 函数发送电子邮件,然后简单地链接到发票(http://www.company-domain-name.dk/invoice/base64_encoded-name.pdf )...相同的结果(垃圾邮件)。

我尝试自己编写整个标题。我已经阅读了很多关于标题应该包括什么的论坛,但他们都写了不同的东西。所以我尝试了一些不同的东西(我之前发送过的电子邮件和我没有发送过的电子邮件)......相同的结果(垃圾邮件)。

然后我尝试在他们的标题中完全按照 MailChimps 的方式编写标题。这让我想到了这一点:

 $headers = "Reply-To: Company name <UNUSED-EMAIL-ACCOUNT-FROM-DOMAIN@DOMAIN-NAME.DK>\r\n"; 
$headers .= "Return-Path: Company name <UNUSED-EMAIL-ACCOUNT-FROM-DOMAIN@DOMAIN-NAME.DK>\r\n";
$headers .= "From: Message from Company name <UNUSED-EMAIL-ACCOUNT-FROM-DOMAIN@DOMAIN-NAME.DK>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Sender: Message from Company name <UNUSED-EMAIL-ACCOUNT-FROM-DOMAIN@DOMAIN-NAME.DK>\r\n";
$headers .= "Content-type: text/plain; charset=\"utf-8\"; \r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n";

然后我像这样发送邮件:

mail($toName . '<'.$toEmail.'>', utf8_decode('Faktura på depositumet'), utf8_decode($someMessage), $headers);

...相同的结果(垃圾邮件)。

空间在One.com,所以我不能用PHPmailer (因为必须安装,而不能在 one.com 的服务器上完成)。而且我无法使用 One.com 定义 SPF。

我想要的,就是能够发送不会进入垃圾邮件的电子邮件。

这是我的问题:

  1. 是因为我的 header 已关闭,还是“更深层”的原因?

  2. Gmail 垃圾邮件过滤器是否禁止单个电子邮件帐户(例如this@example.com)还是禁止整个域(例如@example.com)?

  3. 能否将列入黑名单的电子邮件列入白名单不知何故?

* 添加 1 *

好的......我现在已经尝试了很多事情:

  • 我尝试按照建议添加 LoneWolfPR 的返回路径,但没有帮助。
  • 我联系了 One.com(托管公司),并向他们确认无法设置 SPF 记录或 DKIM 记录。它仍然不是。
  • 我考虑过设置一个“取消订阅”链接,链接到带有表单的网站,但我不相信这种方法。我的意思是 - 发票一直通过电子邮件发送。为什么你应该能够退订发票?!由于这在我的脑海中毫无意义,所以我只尝试了大约 20 分钟(显然,没有结果)。

这是我当前的电子邮件 header (来自 Gmail,通过单击“查看原件”):

Delivered-To: NEWLY-CREATED-GMAIL-ACCOUNT@gmail.com
Received: by 10.76.75.104 with SMTP id b8csp48728oaw;
Sat, 16 Mar 2013 17:32:56 -0700 (PDT)
X-Received: by 10.152.116.45 with SMTP id jt13mr7897860lab.0.1363480376067;
Sat, 16 Mar 2013 17:32:56 -0700 (PDT)
Return-Path: <XXX111@DOMAIN-NAME.dk>
Received: from mail-out2.b-one.net (mail-out2.one.com. [91.198.169.19])
by mx.google.com with ESMTP id p10si4637427lbb.120.2013.03.16.17.32.55;
Sat, 16 Mar 2013 17:32:55 -0700 (PDT)
Received-SPF: neutral (google.com: 91.198.169.19 is neither permitted nor denied by best guess record for domain of XXX111@DOMAIN-NAME.dk) client-ip=91.198.169.19;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 91.198.169.19 is neither permitted nor denied by best guess record for domain of XXX111@DOMAIN-NAME.dk) smtp.mail=XXX111@DOMAIN-NAME.dk
Date: Sat, 16 Mar 2013 17:32:55 -0700 (PDT)
Message-Id: <51450f37.6a0b700a.6239.5dbcSMTPIN_ADDED_MISSING@mx.google.com>
Received: from localhost.localdomain (srv18.one.com [193.202.110.18])
by mail-out2.b-one.net (Postfix) with ESMTP id F3D0B10365
for <NEWLY-CREATED-GMAIL-ACCOUNT@gmail.com>; Sun, 17 Mar 2013 01:32:53 +0100 (CET)
Received: from 85.218.159.219 by www.DOMAIN-NAME.dk via URL_TO_THE_SCRIPT.php with HTTP; Sun, 17 Mar 2013 00:32:53 +0000
To: RECIEVERS_NAME <NEWLY-CREATED-GMAIL-ACCOUNT@gmail.com>
Subject: EMAIL-SUBJECT
X-PHP-Originating-Script: 87486:NAME-OF-THE-SCRIPT-THE-E-MAIL-WAS-SENT-FROM.php
Reply-To: COMPANY NAME <XXX111@DOMAIN-NAME.dk>
From: Besked fra COMPANY NAME <XXX111@DOMAIN-NAME.dk>
MIME-Version: 1.0
Sender: Besked fra COMPANY NAME <XXX111@DOMAIN-NAME.dk>
Content-type: text/plain; charset="utf-8";
X-Mailer: PHP5.3.21

最佳答案

1) 通常情况下,电子邮件地址不会轻易进入黑名单,需要时间和/或很多人将您标记为垃圾邮件发送者才能真正将该地址列入黑名单。

2) 是的。可以将整个域名列入黑名单,因为垃圾邮件发送者通常会生成随机电子邮件地址,例如 f4j3ifl@something.com。

3) 不管它进入垃圾邮件箱多少次,基本上,现在的垃圾邮件过滤器很强大,因为垃圾邮件发送者一天天地试图改进他们绕过的方式,所以过滤器一天比一天严格.如果它第一次进入垃圾邮件文件夹,而用户实际上并没有将其放入垃圾邮件箱,它将继续运行,除非用户取消标记,或者您解决问题。

如何避免垃圾邮件箱?

基本上您需要一些签名,以及对您的 DNS 记录的大量访问权限,因为我们将在此处进行大部分设置。

  • 反向 DNS 查找:在专用服务器上,甚至在某些 VPS 上,您可以设置反向 DNS 记录,有时您只需打开一张票,IT 就会为您设置好.如果您不能拥有它,请更改您的主机或继续被标记为垃圾邮件发送者 xD。这是为了防止 header 伪造,因为您可以在 header 上设置您的电子邮件来自 gmail.com,但这不是电子邮件服务器检查它的方式。

  • SPF 也是必须具备的,如果您不能设置 SPF,那么就不要再尝试了,考虑更改您的主机,您几乎可以停止阅读在这里 xD。

  • DKIM/Domain Key:最好是DKIM,是一个加密的签名,你在DNS上设置公钥,私钥存储在你的邮件服务器,当服务器收到一个电子邮件,它在标题中附加了私钥(您需要一个管理 DKIM 的邮件服务器软件,例如,对于 Windows,它对我有用 hmailserver),邮件服务(例如 gmail)将检查您的dns记录看公钥是否匹配。 这几乎也是必备的


这三个是基础,如果您设置 DMARC 和 ADSP,它会让您在 SpamAssassins 中获得更好的分数。为了获得更好的分数,在谷歌上搜索一些垃圾邮件关键字列表并尽量避免使用它们,有些东西,比如以“亲爱的 xxx”开头的电子邮件对你的分数有害,设置取消订阅系统(即使它很糟糕,只要因为您提供了明确的链接)也会对您有所帮助。

还有:

  • 避免草率的 html 和(任何)背景上的白色文本,一些垃圾邮件发送者使用它来适应隐藏文本,这些过滤器比您想象的更聪明。

  • 阅读具体建议。大多数电子邮件服务在其网站上都有常见问题解答或其他内容,其中包含一些提示,可帮助您发送电子邮件而不是进入垃圾邮件。在其中一些上,您甚至可以申请进入白名单(至少在几年前,在某些服务(例如 gmail)上,他们不再这样做了)

  • 如果您要批量发送,请注意时间!如果你每秒有 X 封电子邮件发送到某个地方,你很可能会进入黑名单,设置一个脚本或其他东西来获得 1 秒左右的延迟,延迟可能取决于目标是否进入黑名单。


希望这些提示对你有帮助,我最近不得不处理一些垃圾邮件过滤器,这很痛苦,这就是为什么我知道所有这些信息,这就是我的全部研究 xD 即使在我设置了所有签名和东西之后,一些电子邮件仍然进入垃圾邮件箱(较小的百分比但它仍然伤害我)唯一可靠的方法是让用户将您添加到联系人列表(同时具有正确的签名和标题),所以提醒他们做所以如果可能的话。

关于php - 绕过 Gmail 的垃圾邮件过滤器(从共享主机使用 PHP 发送的邮件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com