
很多次,我们会听到这样的问题,“您是否有某种剧本可以说明从内部安装迁移到Bird的过程”?
是的,我们确实有。请继续阅读。
首先,一些背景故事。Bird Cloud服务于2014年因On-Premises Momentum MTA解决方案的巨大成功而创建。Momentum是Bird Cloud的核心,为数千个客户提供高速传输和流量整形服务。因此,Momentum获得了我们大量的工程关注,但这项工作的结果往往埋藏在性能改进中,没有获得太多的宣传。 Momentum客户在每次发布新的Momentum公共版本时都可以看到这项工作的好处。
这并不意味着Bird只是“云中的Momentum”。MessageBird远不止于此,并且可以为选择迁移或以混合方式使用它们的客户带来额外的好处。这些好处来自我们的现代基于云的电子邮件API架构,提供了传统内部解决方案无法获得的功能。此外,我们还为PowerMTA客户提供了非常简单的迁移或以混合配置使用PowerMTA和Bird的方式。本文档的其余部分将详细描述如何将您的消息流从Momentum或PowerMTA迁移到Bird Cloud服务。
实际上,对于从Momentum或PowerMTA迁移到Bird时需要考虑两种不同的情况。
您已准备好完全离开内部世界,关闭您的物理数据中心,不再直接管理任何本地MTA。这意味着从您的部署中消除Momentum或PowerMTA,并直接向SparkPost发送消息以进行消息处理。在停止您的内部基础设施之前,确保您对所有关键系统进行了全面的数据库备份,尤其是如果您正在运行包含重要历史数据或配置的PostgreSQL数据库。
您有理由保留一些本地痕迹。可能的一些情况包括:
需要在Momentum中进行预处理的特定传输流
容量分配以应对突发或灾难恢复需求
在PMTA中支持旧客户,同时将新客户转移到SparkPost
…然后您希望将其他消息转发给Bird以进行后续消息处理。
在任何情况下,您都需要知道Bird仅接受通过端口587或2525注入的SMTP消息,并使用具有特定用户名和密码的SMTP_Auth(查看SMTP文档)。我们还强烈建议使用TLS连接,但这并不是绝对必要的。如果您完全替换MTA层(情况1),那么您可能还需要考虑使用Transmissions REST API,该API可以通过HTTPS连接接受消息。有关该API的文档在这里。
对于需要安全电子邮件功能的维护本地基础设施的组织,我们的PowerMTA和Momentum S/MIME实施指南提供了加密电子邮件传输的详细设置说明。
我应该选择哪个选项?
要确定你属于选项#1还是选项#2,请考虑以下因素:
您是否使用Momentum的Lua脚本引擎来处理消息路由之外的复杂事务?
Lua是一种全面的脚本工具,可用于在线操作消息,但我们绝大多数用户仅使用它来选择交付绑定。如果是这样,您可以修改生成代码,在X-MSYS-API头中添加一个ip_pool属性,让Bird为您分配路由。
如果您使用Lua进行更复杂的操作,如正文过滤、Mail_From重写或消息节奏计算,并且将这些逻辑移入注入应用程序中不可行,您可能需要考虑切换到选项#2。
您的生成系统能够使用TLS和SMTP_Auth通过端口587发送消息吗?
一些活动管理系统只能通过端口25以明文方式推送邮件。这对Bird造成安全问题,因此您可能需要考虑选项#2。
您是否使用了PowerMTA替换语法或其他在线消息修改功能?
如果您可以将此功能移动到生成器中或使用Bird 模板语言,那么您仍可以使用选项1,否则您可能需要考虑在线保持一个PMTA节点以进行消息修改,然后再交付给Bird。
您是否需要在注入前进行入站AV/AS扫描?虽然在Momentum和PowerMTA中可以实现,但eBird假定您已完成所有这些检查。您可能需要考虑在注入前进行。
无论您选择哪种方式,都必定会影响您的商业关系。正如您所想,这不是我们的第一次操作。请务必让您的商业客户经理和客户成功经理参与其中,以便我们帮助您处理细节,确保您获得最佳的投资回报。
对于选项#1营地(彻底戒除):
利用 Option #2(on-prem 预处理):
然而,如果您属于选项#2团队,那么您将需要对部署进行一些配置更改。最不痛苦的方法是从Momentum或PMTA迁移一些选择的消息流到Bird,同时仍使用您的生成系统的SMTP注入,是在您的配置中添加一个特殊路由。
对于Momentum:
设置Momentum版本> 3.6.23。
安装有效的SSL证书并打开出站端口587,以便Momentum可以与Bird通信。配置一个出站域,这样您就可以通过Momentum将消息路由到Bird。
根据以下配置,任何碰到该配置的消息都将通过端口587和SMTP_Auth以及在此定义的用户名和密码路由到smtp.sparkpostmail.com。
配置您希望通过MessageBird使用TLS中继的绑定,并将它们连接到您上面定义的域。
注意:TLS不是严格要求的,但强烈推荐。如果由于某种原因不能使用TLS,那么IP白名单API密钥也是强烈建议的。
对于PowerMTA:
设置PowerMTA版本> 4.5.0
安装有效的SSL证书并打开出站端口587,以便PowerMTA可以与Bird通信。
配置一个出站域路径,以便您可以通过PowerMTA将消息路由到Bird。根据以下配置,任何碰到该配置的消息都将通过端口587和SMTP_Auth以及在此定义的用户名和密码路由到smtp.sparkpostmail.com。 在PowerMTA中,这也是可以设置TLS的地方。注意这也有更详细的文档记录这里。
4. 配置您希望通过Bird中继的VMTAs使用您上面定义的{sparkpost}汇总配置。
一旦您做出这些配置更改,发送到选定的“binding”或“VMTA”的任何消息都应自动通过Bird传递。
实现它
当你开始走上这条路时,不要误以为这是一个一夜之间的操作。正确地完成这件事需要一些时间和细心。
设置你的Bird账户并使用开发子账户进行全面测试,以便稍后可以过滤掉该流量。无论选择哪种方式,你都需要这样做,因为无论如何都需要API密钥作为SMTP_Auth密码。
如果你使用SMTP注入,计划添加一个X-MSYS-API标头以整合所需的所有元数据和消息属性。任何X-Headers都应重写为元数据,并且你还应包括ip_pool和campaign属性。这里提供了示例。
如果你不使用BYOIP,那么你应该确保为MessageBird设置稍微不同的发送域,以便在需要时可以平行运行这两个环境。如果你当前的发送域是mycompany.com,可以专门为Bird传递设置sp.mycompany.com。这允许你在不妥协任何一个域的情况下慢慢小心地迁移。
确保启用了完整的域对齐和安全特性。在DNS中,设置DKIM, SPF, DMARC,退回和跟踪域,以便它们看起来都属于同一个组织。
从一个消息流开始,然后从那里继续前进。就像IP预热一样,你不想一次性完成这件事。首先重定向几百条消息,然后重定向10%的流量,接着在第二天增加到20%,并不断增加直到你将所有流量转移完毕。如果你是一家ESP,选择一个可以合作的客户,并根据他们的反馈测试这个过程。如果一切顺利,继续下一个。如果遇到问题,花时间解决并将其融入到下一个过程。
尽可能通过API实现自动化。除DNS更改外,SparkPost配置大部分可以通过几个API调用自动化。
从 Bird 收集数据
MessageBird 报告在 webhooks 数据流或消息事件 API 中的消息传递。访问 Bird 纯文本日志是不可能的。您可以使用 webhooks 收集器或通过定期调用 Events API 并消费数据将此数据回传到您的环境中。我们建议使用 webhooks 并且在这里有一些关于如何正确使用的建议。以最基本的形式,一个 PHP webhook 收集器可以在几行代码中部署:
当您正在试验时,您可以尝试使用诸如http://webhook.site/等免费收集器。
一旦您收集了所有的 webhook 数据,您可以将其读取到数据存储中进行额外处理。还有一些方法可以通过像 StitchData 和 Segment 这样的服务推送 Webhooks。
如果您需要提取数据且不能接受推送数据,则Events API中也提供了相同的信息。以下是一个示例 Event API 调用:
GET https://api.sparkpost.com/api/v1/events/message?/
recipients=recipient@example.com&templates=my-template&events
该 API 在此处提供完整的文档以及示例:https://developers.sparkpost.com/api/events/#events-get-search-for-message-events
如果您真的需要将事件数据返回到看起来像 PMTA 或 Momentum 记录的形式,那也是可能的,只要您使用一些额外的条件代码。好消息是已经有一些例子可以借鉴。
Recap
确保与您的销售和成功管理团队交流。我们以前做过这件事,可以快速且具有成本效益地帮助您。
找出您是属于营地 #1 (能够完全从 On-Prem 迁移) 还是营地 #2 (仍需要一些本地 MTA)。
注册一个免费测试账户以评估集成细节。
如果您使用 SMTP 注入,请弄清楚如何将头数据和消息属性放入 X-MSYS-API 头中。
确认您是否可以使用我们的 BYOIP 过程。
如有必要,用新域更新您的 DNS。
构建一个小样本以测试您的迁移。您可能需要调整配置。
增加流量,以便所有流量都迁移完毕。
如果您属于营地 #1,流量迁移完成后,您可以最终关闭本地 MTA。
在计划高容量电子邮件系统的 DNS 更改时,请注意可能会影响大规模电子邮件交付性能的 AWS DNS 扩展挑战。