如何在drupal中创建一个报告,每个月通过电子邮件发送


how do i create a report in drupal that gets emailed every month?

我设置了一个视图,我想通过电子邮件发送给我(或任何继承我的位置的人),类似于更新报告的电子邮件方式。

这个视图已经设置好了,并提取了我需要的数据。我也有外部cron,它可以运行任何链接,我告诉它(像外部cron链接),所以我可以有每月运行完成,如果给一个链接放进去。我不知道该怎么做的部分是如何将其设置为通过电子邮件发送或如何获得通过外部cron作业运行的链接/设置它通过内部cron在每月的第一天运行

你可以有更多的解决方案,最终取决于你更适合你:

  1. 在自定义模块中,我将实现hook_cron()。在这个钩子里将执行我想要的视图(这并不难,让我知道,如果你这里需要帮助),然后通过电子邮件发送整个输出(我猜)这是你想要的)。现在,你想要发送这封邮件一个月只有一次。对于这一点,您可以有两种可能性:

    • 处理这个在你的cron钩子:基本上你存储最后一次当你发送邮件在一个变量(使用variable_set/variable_get),如果你上个月发送它,那么这意味着你必须再次发送它,所以你首先更新变量,调用视图,准备输出,并通过邮件发送它。
    • 有一个名为elysia_cron: https://www.drupal.org/project/elysia_cron的模块,您可以配置它,以便您的站点上的每个cron钩子仅在特定时间运行(就像您配置crontab一样)。
  2. 另一个解决方案是在您的站点上有一个端点,而不是Hook_cron(),这基本上与前面的操作相同解决方案:调用视图并发送邮件。区别在于你可以配置你的crontab在你想要的时候调用这个URL,所以不需要特殊的配置。还有一件事对这个端点的访问。在我看来,这应该是是受限的,但是因为你不能基于用户角色(cron将以匿名用户身份调用端点),您必须找到另一个解决方案(或者在Url,或者可以从特定ip调用端点,等)。这就是我更喜欢hook_cron()的主要原因,因为

我是一个Drupal开发者,所以在这个特殊情况下我要做的是1)