允许客户在SAAS应用程序中使用自己的域名发送邮件

12

我目前在运行一个SAAS应用程序,使用Mailjet发送邮件.

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

那么有没有初步的指导建议呢?我猜想他们需要将我们的SPF记录添加到他们的SPF记录中,并需要添加我们为他们生成的DKIM密钥到他们的记录中。然后在DNS级别上对它们进行验证并标记为已验证?

我对于让客户在我们的SAAS域上运行自己的域有一些了解,但对于要求从他们的电子邮件域发送有些困惑。


也许他们可以给你一个账户/凭据,让你使用他们的邮件服务器发送邮件? - Dusan Bajic
3个回答

12

首先声明,我的SaaS平台可以通过选项2b实现这一点。它是一个电子商务市场,我需要收据从产品销售者的电子邮件地址发送,而不是从我(市场)的地址发送。

你有两个选择:

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

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

选择1

选择1,您需要请求客户IT团队为您设置用户名和密码,以便您访问他们的SMTP服务器。这基本上就像他们为您创建一个要使用的电子邮件帐户。这可能看起来是可用于您的最简单的路径,但存在潜在的问题和缺点:

这样做,您将失去mailjet提供的邮件打开/点击/退回跟踪功能,因为您将使用公司的SMTP服务器。

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

您可能会发现他们甚至没有能力向您提供用户名和密码。现代邮件服务不允许SMTP访问(这是您的Web应用程序将需要的);而安全意识高的公司要求电子邮件帐户进行双因素身份验证(您的Web应用程序无法回答)。

选择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记录的清晰指示。

无论采取哪种方法,请确保尽快与客户方的正确人员沟通。他们的营销团队可能渴望与您合作,但是如果他们的IT感到被排除在谈话之外,当您需要他们进行更改时,他们将很难参与其中。我们IT人士可能会很暴躁和顽固。

您的Web应用程序

这将需要进行一些调整。您可能已经在文件或环境变量中存储了Mailjet凭据;这些凭据可能需要移动到数据库表中,以便您可以将凭据与特定帐户相关联。但是,我们需要更多有关Web应用程序的信息,才能更好地解决这一挑战。

方案2b

仅作为笔记而非真正的建议。请注意,某些电子邮件服务提供商允许通过向该域上的某个人发送电子邮件(例如admin@yourclient.com)来完成发送验证部分,然后在收件人单击该电子邮件上的批准链接时允许通过API发送。但即使使用此设置,仍需要客户在其DNS上配置SPF和DKIM,因此额外的一个记录并不是很困难。AWS的SES可以实现此功能。这对我很有效;但我的交付能力要求不同,并且有大量的非技术用户(而不是您的一两个重要客户)。


对于2b选项,你知道SES上面叫什么名字吗?比如Postmark也有这个功能,但它没有提到你需要添加SPF / DKIM:https://postmarkapp.com/support/article/846-how-can-i-send-on-behalf-of-my-users#verifying-email - undefined
1
好久不见,但我想你在寻找的是 https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html。 - undefined

0
你可以让客户生成编程的(应用密钥/密码)用户,以便为需要使用的电子邮件(例如info@largehotel.com)和其他信息(如主机:gmail,协议:SMTP等)进行设置。所需的所有基本信息,然后在你的SaaS中检索所有这些信息,创建带有之前存储的客户信息的对象,以便将邮件发送到目标(从开发人员角度而言,非网络工程)。

0

SPF 是最重要的事情。在大多数情况下,您必须非常小心 IP 声誉,但由于您正在使用 Mailjet,他们负责管理此部分。

注意电子邮件的整体质量,文本/图像比率... 还要为内容提供文本正文版本,并不要忘记取消订阅链接。既然您已经使用您的服务发送电子邮件,我想它的点数已经正确。


如果没有正确的SPF记录,邮件将会被归类为垃圾邮件,但是如果没有在Mailjet上验证域名或设置SMTP,则无法发送电子邮件。因此,我不确定这是否是最重要的事情 - Tom Harvey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接