创建自定义邮件提供方

页面摘要: 通过导出一个带有 send() 函数的 Node.js 模块来构建自定义邮件提供方。可以在你的项目中本地使用,或发布到 npm 与社区共享。

Strapi 的邮件功能将发送工作委托给一个提供方,即实现了标准接口的 Node.js 模块。当没有官方或社区提供方能满足你的需求时,你可以创建自己的提供方。

提供方接口

要实现自定义提供方,你必须创建一个 Node.js 模块。该模块必须导出一个返回 send 函数的 init 函数:

JavaScript

module.exports = {
  init: (providerOptions = {}, settings = {}) => {
    return {
      send: async options => {},
    };
  },
};

TypeScript

export default {
  init: (providerOptions = {}, settings = {}) => {
    return {
      send: async options => {},
    };
  },
};

在 send 函数内部,你可以访问:

  • providerOptions —— 在 /config/plugins.js|ts 中 providerOptions 下传入的值。
  • settings —— 在 /config/plugins.js|ts 中 settings 下传入的值。
  • options —— 从控制器或服务调用 send() 时传入的选项。

你可以参考 Strapi 维护的提供方 作为实现参考。

发布和使用你的提供方

创建提供方后,你可以将其发布到 npm,或在你的项目中本地使用。

发布到 npm

将你的提供方发布到 npm,使其可供 Strapi 社区使用。发布后,像其他任何提供方一样安装并配置它(参见配置提供方)。

使用本地提供方

要在不发布到 npm 的情况下使用自定义提供方:

  1. 在你的 Strapi 应用根目录创建一个 providers 文件夹。
  2. 在其中创建你的提供方(例如 providers/strapi-provider-email-custom)。
  3. 更新 package.json,将依赖指向本地路径:
{
  "dependencies": {
    "strapi-provider-email-custom": "file:providers/strapi-provider-email-custom"
  }
}
  1. 更新 /config/plugins.js|ts 以配置该提供方。
  2. 运行 yarn 或 npm install 以链接本地包。