如何在Directus 9.24的Hook定时Cron任务中调用邮件服务
在Directus定时Hook中获取邮件服务的正确方式
要在Directus的定时Cron Hook中使用邮件服务,你不需要额外传入服务实例,直接通过Hook上下文里的directus实例即可获取内置的邮件服务。
修正后的可运行代码示例:
export default ({ schedule, directus }) => { schedule('*/15 * * * *', async () => { // 替换为你的实际业务数据 const payload = { email: 'user@example.com' }; const subject = '定时任务通知'; // 从directus实例中获取邮件服务 const mailService = directus.services.mail; await mailService.send({ from: payload.email, to: payload.email, cc: payload.email, subject: subject, template: { name: 'your-template-slug', // 替换为你在Directus中创建的邮件模板名称 data: payload, }, }); }); };
关键要点:
- Hook的初始化函数会接收包含
directus实例的上下文,该实例包含所有Directus内置服务,其中directus.services.mail就是你需要的邮件服务对象。 - 确保你的Directus已正确配置邮件服务(通过环境变量或管理后台设置SMTP参数),否则邮件服务无法正常发送邮件。
- 原代码中的语法错误(多余逗号、未定义变量)已修正,使用时需替换示例中的占位值为实际业务数据。
内容的提问来源于stack exchange,提问作者Suresh Madhaiyan
相关产品推荐
相关产品推荐

