邮件发送

设想您经营一家服装网店。当客人下完单后,您希望自动给他发一封"订单已成功受理"的确认邮件。可是,要发邮件,首先得定好"用哪个地址、以什么名义来发"。要让邮件带着 服装店客服 这个名字和店铺地址出现在客人的收件箱里,就得预先把那份发件人信息登记到一处。这样把要用来发邮件的发件人登记下来,就是 Email Account

可以把它比作公司信纸上预先印好的寄件人信息。每写一封信时,不必重新写上寄件人的地址和名字,只要取出预先印好的信纸来用,寄件人就始终一致。Email Account 也像那张信纸,一旦登记好,此后发出的所有邮件都以同一个发件人发出。

有一点要先说明。Email Account 只是登记发件人。真正把邮件写好并发给客人,是由 ScriptEmailSend 指定这个 Email Account 来完成的(下文 用登记好的发件人来发邮件 会介绍)。本页先来看 Email Account 中要登记什么,然后亲手给服装店 Space 登记一个发件人。

需要登记什么

Email Account 中要登记三组值:用来发邮件的服务器、登录该服务器所需的信息,以及要展示给客人的发件人。

  • 发送服务器:实际把邮件发出去的发送服务器(SMTP 服务器,即以标准方式传送邮件的服务器)的地址和端口。保护连接的安全方式会根据这个端口自动确定。端口 587StartTls 配对,端口 465Tls 配对,因此不必另行选择安全方式。
  • 登录信息:登录该发送服务器所用的用户名和密码。用户名因发送服务器而异,可能就是邮件地址本身,也可能是发送服务定好的固定字符串。
  • 发件人:展示给客人的发出地址(发件地址)和显示在客人收件箱里的名字(发件显示名称)。发件地址例如 dailycloset.orders@gmail.com,发件显示名称则设为 服装店客服 这样的值。发件显示名称若不填,就只显示地址。

只有发件人会被客人看到,发送服务器和登录信息只在幕后用于实际把邮件发出去。

登记时会真的发出一封测试邮件

登记 Email Account 并不是仅仅把填入的值保存下来的动作。在保存之前,会用填入的发送服务器和登录信息实际连接一次,试着发出一封测试邮件。 只有这次发送成功,发件人才会被保存。

  • 发送成功,Email Account 就登记完成。
  • 在连接、登录或发送中的任何一步失败,就会什么都不登记而失败,并一并显示发送服务器返回的失败原因。

所以要知道,按下登记按钮的那一刻,真实的邮件就会发出。如果值填错而多次尝试登记,每一次都会真的尝试发送。

连接信息以后无法更改

登记的值中,有些以后可以修改,有些则不能。

  • 发送服务器和登录信息在登记后无法更改。 若要更换发送服务器或更改登录密码,不是去修改,而是通过登记一个新的 Email Account 并删除原有的来完成。
  • 发件人和名称在登记后仍可修改。 展示给客人的发件地址、发件显示名称,以及在内容工作室中用于区分多个发件人的名称,都可以在之后修改。

密码在登记之后无法再次查看。登记时输入一次,此后不会在任何地方显示,所以如果忘记了密码,不是去重置,而是通过重新登记的方式来更换。

可以使用哪些发送服务器

可以使用的发送服务器因套餐而异。

  • 预先提供的发送服务(Gmail、Naver、Resend、Brevo)在所有套餐中都可以登记。只要在列表中选择它们,地址、端口、安全方式就会自动填好。
  • 列表中没有的自有发送服务器只能在已登记支付方式的付费套餐中使用。在免费套餐中若尝试用列表以外的服务器登记,会被拒绝。

各套餐的政策请参见 定价

要使用 Naver 邮箱,需先在 Naver 那一侧开启 POP3/SMTP 并取得应用专用密码。这一过程在 准备用 Naver 邮箱发送邮件 中介绍。

Resend 需要登记自己拥有的域名并通过认证才能使用。这一过程在 准备用 Resend 发送邮件 中介绍。

Brevo 需要先让发送地址通过验证,再单独创建 SMTP 密钥。这一过程在 准备用 Brevo 发送邮件 中介绍。

在内容工作室中登记

现在就来给服装店 Space 登记一个发送订单通知邮件的发件人。发送服务器用预先提供的 Gmail,发件人则设为 服装店客服

开始之前,请先取得 Gmail 的应用专用密码。登记过程中会出现填入这个值的栏。取得的方法在 准备用 Gmail 发送邮件 中介绍。

Email 列表画面。还没有任何已登记的 Email Account 的空状态,右上角可见创建按钮

  1. 在左侧菜单的 设置与管理 中打开 Email
  2. 点击右上角的 创建 按钮。
  3. 在 Provider 中选择 GmailSMTP 服务器端口 会自动填好,安全方式根据所选端口确定(587 则为 STARTTLS)。若要使用列表中没有的服务器,请选择 自定义 SMTP,然后自行输入服务器地址和端口。
  4. Gmail 地址 栏中输入用来登录的 Gmail 账户(例如 dailycloset.orders@gmail.com)。
  5. 应用专用密码 栏中输入事先取得的 16 位应用专用密码。它不是 Google 账户密码。这个值在保存之后就无法再次查看。如果还没有取得,请参照 准备用 Gmail 发送邮件 取得。
  6. 名称 栏中输入用于区分这个发件人的名称 订单通知发件人。这个名称只在内容工作室中显示,与实际的邮件发送无关。
  7. 发件地址 栏中输入要展示给客人的发出地址(例如 dailycloset.orders@gmail.com)。使用 Gmail 时,即使填入与已认证账户不同的地址,实际发送时也会被改写为已认证账户的地址发出。
  8. 发件显示名称 栏中输入将显示在客人收件箱里的名字 服装店客服。若不填,就只显示地址。
  9. 点击 保存 按钮。

Email Account 创建画面。将 Provider 选为 Gmail 后 SMTP 服务器、端口已自动填好,并填入了 Gmail 地址、应用专用密码、名称、发件地址、发件显示名称的状态

点击 保存 按钮后,会用填入的信息发出一封测试邮件。发送成功,列表中就会出现 订单通知发件人。若失败,会显示发送服务器返回的原因,并且什么都不会登记,请重新确认登录信息或发送服务器的值。

Email 列表画面。"订单通知发件人" Email Account 已登记为一行,可见 Provider、SMTP 端点、发件人信息

用登记好的发件人来发邮件

Email Account 只是把发件人登记下来,本身并不会发邮件。实际的发送由 ScriptEmailSend 承担。EmailSend 是一个写明"用这个发件人、发给这个地址、以这样的主题和内容发邮件"的动作,而用哪个发件人来发,则通过指定刚刚登记好的 Email Account 来确定。发件地址和发件显示名称会原样沿用所指定的 Email Account,因此在 EmailSend 中只需定好收件人以及主题、内容。

如果是服装店的订单通知邮件,流程是这样的。

  1. 客人下单后,订单会作为 Content 登记下来。
  2. Webhook 察觉到订单被登记,执行预先做好的 Script
  3. ScriptEmailSend 指定 订单通知发件人 Email Account,给那位客人发出订单确认邮件。

一次 EmailSend 发给一位收件人。如果订单有多笔,就在 Script 内部循环,为每一笔订单各发一封。像这样登记发件人并用 Script 接起来的详细示例,在下面的文档中介绍。

接下来要做的事

  • Script:介绍如何创建一个在 Space 内运行、包含用登记好的 Email Account 实际发送邮件的 EmailSend 的作业。
  • Webhook:介绍如何接起来,让订单一被登记,发送邮件的 Script 就自动执行。
  • Email Account:介绍在程序中直接登记和管理 Email Account 时使用的请求、响应格式与字段规格。