我的应用程序上有一个消息系统,用户可以直接从我的域向其他用户发送消息(无需通过 Mailchimp 的 Mandrill 模板或 Google Apps)。我还有 cron 作业,每周将用户的统计信息发送给大约 5,300 名用户。同样,脚本直接从我的域发送消息。
大多数电子邮件都会进入用户的垃圾邮件箱,我需要尽快解决这个问题。我最近发现了一款应用程序,它可以测试电子邮件的送达率,并根据电子邮件服务器的配置情况(以及其他因素)给出分数。这是 URLhttps://www.mail-tester.com。我修复了几个问题,我的分数从 -0.2/10 上升到了 7.7/10。然而,尽管测试人员说我的电子邮件是“好东西”,但我知道数百封电子邮件要么没有送达(因为发件人不受信任而被退回),要么直接进入垃圾邮件箱。
为了获得近乎完美的分数,我需要修复的最后一件事是向电子邮件添加 DKIM 签名。希望这能提高送达率。这是电子邮件测试员给我的有关 DKIM 的消息:“您的邮件未使用 DKIM 签名。域名密钥识别邮件 (DKIM) 是一种将域名与电子邮件消息关联起来的方法,从而允许个人、角色或组织对该消息承担一些责任。”
我确实尝试通过我的服务器(BlueHost)解决这个问题,但他们无法帮助我(不过他们帮助我解决了其他问题)。
此外,我还使用了微软的 mxtoolbox (http://mxtoolbox.com/) 测试我的电子邮件,测试结果显示 DMARC 缺失或无效。
有人知道如何将 DKIM 签名和 DMARC 添加到来自域本身的电子邮件中吗?是否有命令行可用于执行此操作?
谢谢你!
PS App 是用 PHP 编写的
答案1
您永远无法从 blue host 的糟糕声誉中恢复过来,我强烈建议您使用 mandrill app 等智能主机来管理您的电子邮件,它们将执行 DKIM 和 SPF 签名,处理广告并确保可交付性。您只需要担心内容。声誉不仅仅是不断发送的优质电子邮件,还包括历史和数量。
Sendgrid 也是一个很好的选择。
回答 DMARC 很容易,https://dmarc.postmarkapp.com/您需要等待大约一周才能收到报告,如果您想确保收到 dmarc 报告,则需要向 aol、yahoo、gmail 发送大量电子邮件(由接收者实施 DMARC)
DKIM 你需要匹配你的私钥(opendkim 中用于签名的信息)和公钥(你的 dns 记录)
我发现这本指南非常适合
这也可能解决你的 DKIM 签名问题,配置 Postfix 以对系统生成的电子邮件进行 dkim 签名
答案2
必须将 DKIM 添加到您域的 DNS 记录中。我还建议添加 SPF 记录(也通过 DNS 添加)。您可能可以通过 Google 或搜索主机知识库来了解如何执行此操作。如果您没有在该 CentOS 机器上使用 Bind 或其他 DNS 服务器来处理您的 DNS,那么您可能需要通过您的注册商添加它们。
另外值得一提的是,如果您通过一个 IP 地址发送这种数量的邮件而不受速率限制并重新发送,那么您发送到的特定 ISP 可能会短暂地阻止连接。
如果您有时间,您可以考虑设置自己的 Bind DNS 服务器并将其与您的注册商绑定,以便您完全控制记录。然后为您的主机购买额外的 IP 地址,并使用 IPTables / postfix 在它们之间轮换邮件(http://www.host1plus.com/tutorials/operating-systems/linux/how-to-setup-ip-rotations-for-emails-on-linux)。
最后,您可以使用第三方(例如 Google Apps for Work 或 Mailchimp)并通过 PHP 进行连接,具体操作如下:http://www.beginninglinux.com/home/php/send-plain-text-e-mail-from-php-using-gmail-secure-smtp-server
答案3
您必须在 DNS 区域中配置以下 DNS 记录:SPF DKIM DMARC 但这还不够,您必须配置 MTA。我认为您需要使用 MTA(例如 postfix)而不是 php 脚本。如果您有机会访问服务器配置的话。一些教程: https://help.ubuntu.com/community/Postfix/SPF https://help.ubuntu.com/community/Postfix/DKIM