允许客户在 SAAS 应用程序中从他们自己的域发送

Allow customers to send from their own domain in a SAAS application

我目前运行正在使用 SAAS 应用程序,并且正在使用 Mailjet 从我们的应用程序发送邮件。

一些较大的客户一直要求允许从他们的域(例如 info@largehotel.com)而不是我们的系统(notifications@saasapp.com)发送电子邮件。

是否有任何我需要查看的初始指示?我猜他们也需要将我们的 SPF 记录添加到他们的 SPF 记录中,并且他们还需要添加我们为他们生成的 DKIM 密钥以添加到他们的记录中?然后在 DNS 级别对它们进行一些验证并将它们标记为已验证?

我有一些理解,让客户 运行 他们自己的域与我们的 SAAS 域相对照,但在从他们的电子邮件域要求发送时有点迷失。

你可以要求你的客户生成程序化的(app key/password)用户用于电子邮件需要使用例如 info@largehotel.com 和一些其他信息,如(主机:gmail,协议:smtp, ...) 然后在您的 saas 中检索所有这些信息以使用您之前存储的客户端信息创建对象,以便为目标发送电子邮件(来自开发人员预期的非网络工程)

SPF 是最重要的考虑因素。 在大多数情况下,您必须非常注意 IP 信誉,但由于您使用的是 Mailjet,这取决于他们管理这部分。

注意电子邮件的整体质量,text/image 比...还提供内容的正文版本,不要忘记取消订阅 link。由于您已经使用您的服务发送电子邮件,我想它的积分已经正确了。

首先,郑重声明,我的 SaaS 平台会执行此操作(通过选项 2b)。这是一个电子商务市场,我需要从产品卖家的电子邮件地址发送收据,而不是我(市场)

你有两个(大概)选项

  1. 通过客户端的邮件服务器(而不是 mailjet)发送电子邮件

  2. 在您的 Mailjet(或类似电子邮件)服务上验证客户的域

选项 1

对于选项 1,您需要让客户的 IT 团队设置用户名和密码,以便您访问他们的 SMTP 服务器。这本质上就像他们创建一个电子邮件帐户供您使用一样。这对您来说似乎是最简单的途径,但也存在潜在的陷阱和缺点:

这样做,您将失去使用 mailjet 获得的邮件 open/click/bounce 跟踪功能;因为您将改用公司的 SMTP 服务器。

如果您使用一个相当常见的电子邮件地址(例如 info@your-client.com)发送邮件,客户可能已经在他们的邮件服务器上激活了该帐户。这将允许他们接收对现有基础设施的回复,但让他们警惕与您共享邮件服务器密码的安全问题。

您可能会发现他们甚至无法为您提供用户名和密码。现代邮件服务不允许 SMTP 访问(这是您的网络应用程序所需要的);和有安全意识的公司要求对邮件帐户进行 2 因素身份验证(您的网络应用程序无法回答)

选项 2

为此,您需要要求他们的 IT 团队配置一些 DNS 记录,以向 mailjet 和电子邮件收件人证明您可以代表您的客户发送邮件。

您在首次设置 mailjet 时为自己的域执行了此操作。具体内容见https://app.mailjet.com/support/how-to-add-a-sender-address,96.htm,不过是要求客户端配置DNS记录的情况。

这告诉 mailjet 您可以代表该域发送邮件;但您还希望客户调整他们的 SPF 和 DKIM 记录,以便电子邮件的收件人知道使用从您客户的域名发送的电子邮件来信任 Mailjet 的服务器。通常,收件人只信任从您客户的邮件服务器(您有选项 1)发送的电子邮件,而不信任从 SAAS 提供商发送的电子邮件。

您也将(或应该)在 mailjet 上为您自己的域完成此操作。 https://app.mailjet.com/docs/spf-dkim-guide

所以为此,您需要您的客户端设置 3 条 DNS 记录。

如果您这样做,您可以设置一个单独的 Mailjet 帐户,您和他们都可以访问该帐户。这样他们就可以直接看到他们的仪表板,并感受到一种主人翁感和安全感。但是你不能加价

结论

跟踪有多重要?如果你不能失去,你需要选择选项 2。

客户的技术水平如何?他们能否更改这些 DNS 记录?在他们的主邮件服务器上给你一个帐户时,他们是否(正确地)有安全意识。

选项 2 是我的首选。您可能需要通过 DNS 设置牵着他们的手,以便在 Mailjet 上进行配置(并在这里询问 SPF 以确保您做对了)这样您就可以向他们提供特定 3 条 DNS 记录的明确说明 create/update.

无论您采用何种方法,请确保您尽快与客户方的合适人员交谈。他们的营销团队可能很想和你一起做这件事,但如果他们的 IT 感觉被排除在谈话之外,当你需要他们做出改变时,他们将很难参与进来。我们 IT 人员可能脾气暴躁且固执

您的网络应用程序

这需要一些调整。您可能已经将 Mailjet 凭据存储在文件或环境变量中;这些可能需要将它们移动到 dB table 以便您可以将凭据与特定帐户相关联。但我们需要有关网络应用程序的更多信息,以便能够更多地应对挑战的这一方面。

选项 2b

只是一个注释,而不是一个真正的建议。请注意,某些电子邮件服务提供者允许通过向该域中的某人发送电子邮件(例如 admin@yourclient.com)来完成发送验证部分,然后如果收件人点击,则允许通过 API 发送在该电子邮件上批准 link。但是,即使使用该设置,您仍然需要客户端在其 DNS 上配置 SPF 和 DKIM,因此额外的一条记录不是什么大问题。 AWS 的 SES 允许这样做。这对我有用;但我对交付能力和大量非技术用户(而不是你的一两个大客户)有不同的要求