You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:47:36