通过 SMTP 路由邮件并使用 API

Routing mail through SMTP and also using API

我构建了一个应用程序 (SaaS – Laravel/PHP),我的目标是通过该应用程序发送交易邮件,并通过我的应用程序发送一般电子邮件。我的交易邮件通过我的发送域(使用 spark post 的 api-php 配置)工作。

现在,我想配置我的系统,以便登录的用户也可以通过 his/her 自己的电子邮件地址(也是用于登录的 his/her 用户名)发送电子邮件;我认为他们的消息只会通过我的发送域进行路由(“来自 header” 类似于通过我的发送域从用户发送的电子邮件)。

除了我用 sparkpost 的 API 创建的作业 class 之外,我是否还设置了 SMTP 中继?我是否将所有内容都配置到 sparkpost 的 api 中?我不确定如何解决这个问题。有没有人遇到过相同的issue/found解决方法?

提供一般的电子邮件发送服务是一个相当广泛的话题。以下是根据您的问题得出的一些基本观察结果。

完全披露:我为 SparkPost 工作。

总而言之,您可以使用 SparkPost 或您自己的 SMTP 中继来发送带有一些注意事项的用户邮件。 IMO,使用 API 驱动的服务比 SMTP 中继服务器更易于管理。

来自地址

首先,重要的是要认识到在未获得域所有者明确授权的情况下从 客户域发送邮件的风险。现代电子邮件域使用多种机制 (SPF, DKIM, DMARC, ...) 来确保只有授权方才能代表他们发送邮件。如果没有这些机制,任何人都可以通过电子邮件冒充其他人。

因此,我建议您不要从客户电子邮件地址发送邮件。相反,您可以将自己的域与 usermail@yourdomain.com 之类的通用地址一起使用,也可以将您的用户电子邮件地址嵌入其中。

发送普通邮件

您的用户通过您的服务发送的消息将影响您作为电子邮件发件人的声誉。我建议考虑提供服务的方式,而不是为垃圾邮件发送者提供简单、可自动化的发送服务。这可能包括限制人们可以发送的消息类型、速度或数量,包括邮件表单上的 reCAPTCHA 或可能在允许用户使用邮件服务之前审查用户。

SparkPost 详细信息

您通过 SparkPost 发送的邮件必须使用您控制的发送域。由于 SparkPost 管理投递,因此通过您的 SparkPost 帐户发送的任何邮件都会影响您帐户的声誉,因此不需要的邮件可能会导致您的帐户被暂停。您可以考虑使用 subaccounts to separate each of your users' email traffic and understanding how suppression lists 保护 SparkPost 帐户也可能有用。

SMTP 中继详细信息

SparkPost 详细信息 注释中的警告同样适用于此处,但您必须直接管理与每个接收域(live.com、gmail 等)的关系.您的应用还必须包括通常的退订和退回处理功能。