创建自定义邮件提供方
页面摘要: 通过导出一个带有
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 的情况下使用自定义提供方:
- 在你的 Strapi 应用根目录创建一个
providers文件夹。 - 在其中创建你的提供方(例如
providers/strapi-provider-email-custom)。 - 更新
package.json,将依赖指向本地路径:
{
"dependencies": {
"strapi-provider-email-custom": "file:providers/strapi-provider-email-custom"
}
}
- 更新
/config/plugins.js|ts以配置该提供方。 - 运行
yarn或npm install以链接本地包。