- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
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。
我想要的,就是能够发送不会进入垃圾邮件的电子邮件。
这是我的问题:
是因为我的 header 已关闭,还是“更深层”的原因?
Gmail 垃圾邮件过滤器是否禁止单个电子邮件帐户(例如this@example.com
)还是禁止整个域(例如@example.com
)?
* 添加 1 *
好的......我现在已经尝试了很多事情:
这是我当前的电子邮件 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/
我想在文本区域中向许多其他用户发送电子邮件。在名为内容的文本区域中,如果我键入星号包围的“用户”,我想让它们填写每个电子邮件的用户名(“@”之前的文本)。每封电子邮件中的每个用户名都会产生很多不同。然
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Problem when loading php file into variable (Load resu
我正在从数据库中提取信息,并尝试将其作为电子邮件发送。将从数据库中拉取多行数据。这就是我的代码的样子... 所有的信息邮件都很好。我的问题是,我想保留中断。例如,在标题之后,我想中断一下,然后开始备
当我使用我们使用 java 邮件的门户发送 TEXT 电子邮件时没有问题,但是,当我选择放置 HTML 内容并发送电子邮件时,会引发以下警报。花了几个小时搜索但没有有用的答案! 谁能帮忙 电子邮件主题
我有这个类,它处理 gmail 的登录。无论我输入什么电子邮件和密码,程序都会返回 session 。我不明白如何在返回 session 对象之前检查登录是否成功。 package mailActio
我设置的短信作为文本文件附在信中。我不明白为什么会这样。 replied letter example public void sendEmail(MimeMessage message, Strin
所以我正在制作一个网络系统,这个想法是当用户关闭浏览器时它会向我发送一封电子邮件。目前,用户正在使用 Javascript Ajax 来让 PHP 更新数据库的当前时间。当时间超过 5 分钟时,我希望
我想发送邮件,当产品从之前、日期和之后过期时,在 php 中,我在 php 中使用了 datediff mysql 函数,但如果产品过期日期类似于 31-1-2012 ,则不同值是不适合我的编码,请帮
我正在尝试设置一个邮件脚本,该脚本将首先从 mysql 运行一个简单的选择,并在消息中使用这些数组变量。然而,所有的变量并没有输出到消息体,只有一行变量。这是我的脚本: $sql1 = "SE
我最近一直在努力研究这个问题。是否有我可以使用并添加到其中的 android API?我想为电子邮件应用程序制作一个插件,但我不想制作整个电子邮件应用程序。 我非常想要一些已经可以处理发送和接收电子邮
嗨 我有一个 PHP 西类牙文网站。在此邮件正文中包含一个主题“Solicitud de cotización”,但该主题出现在热门邮箱中,如 Solicitud de cotización 。但它在
我想写一个脚本,使用 php 自动向我的客户发送电子邮件 我如何自动发送它,例如,如果他们输入他们的电子邮件。然后点击提交 我想自动发送这封邮件 其次,我的主机上是否需要 smtp 服务器?我可以在任
今天早上我已经解决了一个问题: Java Mail, sending multiple attachments not working 这次我遇到了一个稍微复杂一点的问题:我想将附件和图片结合起来。
下面是用于连接 IMAP 文件夹并对其执行操作的代码。所以我的问题是关于 javax.mail.Session 的,在这种情况下它会每秒重新创建一次(取决于 checkInbox() 的 hibern
我正尝试按照 http://www.tutorialspoint.com/java/java_sending_email.htm 上的指南发送电子邮件 Java 应用程序 当我尝试运行它时,从上面的链
我有一个包含 2 列 email 和 id 的表格。我需要找到密切相关的电子邮件。例如: john.smith12@example.com 和 john.smith12@some.subdomains
首先是一些信息: Debian 压缩 PHP 5.3.3 带有 mod_cgi 的 PHP 在这种情况下,我绝对必须使用 mail()。对于我所有的其他项目,我已经使用 SMTP 邮件。 我已将站点超
在对电子邮件主机的联系表单进行故障排除时,他们告诉我在 php 邮件功能的发件人地址中使用“-f”。 “-f”标志的作用是什么?为什么它可以解决允许发送电子邮件的问题?我阅读了一些文档,但不是很清楚。
一个简单的问题:群发邮件哪个性能好? mail() 函数或sendmail 流行的 PHP 列表管理器包使用哪个? 最佳答案 嗯,mail() 函数并不适合批量发送电子邮件,因为它会为您发送的每封
我正在制作一个 PHP 表单,允许用户上传附件并将其发送到我的电子邮件。我一直在寻找很长一段时间才能做到。最后,我找到了这个。 http://www.shotdev.com/php/php-mail/
我是一名优秀的程序员,十分优秀!