![用于代码的邮件中继或 SMTP 服务](https://linux22.com/image/523172/%E7%94%A8%E4%BA%8E%E4%BB%A3%E7%A0%81%E7%9A%84%E9%82%AE%E4%BB%B6%E4%B8%AD%E7%BB%A7%E6%88%96%20SMTP%20%E6%9C%8D%E5%8A%A1.png)
我想开始使用 SMTP 或邮件中继服务。我发现有很多这样的服务,但我不确定它们之间是否有优势。我唯一的要求是:
- 可以“从” 1 个以上的域名发送(对于我工作的所有不同站点,可能超过 20 个)
- 可以支付更高的限额(我可能需要在 1 天发送多达 15000 封,尽管平均值不到 500 封)
- 可以从 PHP 发送(虽然我怀疑这会是个问题,因为大多数都与任何语言兼容)
我可以接受 SMTP 服务、邮件中继服务或使用自定义 API 的站点,尽管 API 会使转换更加困难。
我主要使用该服务器发送个人电子邮件,例如注册确认或类似邮件。但偶尔,我可能需要它向多达 15000 个电子邮件地址发送群发电子邮件。
想要这样做的原因:
- 我不想自己托管任何邮件服务,因为它们只会让人头疼
- 我不必担心被列入黑名单。如果他们被列入黑名单,他们会知道这一点,并知道如何解决。
- 报告电子邮件是否已发送就好了。
答案1
几乎任何 ISP 都可以满足这些需求,但您必须为此付费。
您实际上需要做的是设置一个本地 MTA(例如 exim 或 postfix)以在智能主机模式下运行,它会将所有消息转发到另一个邮件服务器(来自 ISP 的邮件服务器)。您的本地邮件服务器将配置为不中继除本地套接字的消息之外的任何内容(这是 exim 的默认配置)。这将避免您想要避免的任何麻烦。
由于您实际上是通过本地 MTA 发送邮件,因此您可以使用 PHP 的 PEAR 库来执行此操作(与标准 PHP 邮件函数不同,它工作得很好,并且支持不同的“发件人”域和地址)。它还支持纯文本消息和 HTML 消息(从您的问题来看,这可能很有用)。
您必须为每个域名单独获取一个邮件帐户(至少我所知道的大多数 ISP 都是这样)。如果您不愿意为此付费,那么恐怕您必须自己运行邮件服务(以及随之而来的所有东西)。
答案2
这是个好建议。如果您使用本地 MTA,它将为您管理排队 - 延迟的电子邮件将被重试,而不是......谁知道呢?此外,您还将获得内置的日志记录!从而报告电子邮件的传递状态。
如果您使用 PEAR(或其他库或接口)通过 SMTP 发送,它不一定能够处理不成功的传送。
您可能还需要考虑设置 SFP 记录和 DKIM,这样您的域名(如果合法)就不会直接与一个或另一个 IP 相关联。
答案3
最好的方法是让本地 SMTP 服务器通过可靠的中继服务发送邮件,该中继服务可以处理域级限制、SPF、DKIM、抑制列表、IP 白名单、黑名单解析等问题。ReturnPath 最近的研究表明,当 MTA 配置错误时,有时多达 50% 的电子邮件无法送达。通过 SocketLabs Email On-Demand 等信誉良好的中继服务发送邮件,您可以减轻复杂性,只需专注于核心业务。