Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在drupal中创建每个月都会收到电子邮件的报告?_Php_Drupal_Drupal 7_Phpmailer_Drupal Views - Fatal编程技术网

Php 如何在drupal中创建每个月都会收到电子邮件的报告?

Php 如何在drupal中创建每个月都会收到电子邮件的报告?,php,drupal,drupal-7,phpmailer,drupal-views,Php,Drupal,Drupal 7,Phpmailer,Drupal Views,我有一个视图设置,我希望通过电子邮件发送给我(或任何继承我职位的人),类似于更新报告的电子邮件发送方式 此视图已全部设置并提取我需要的数据。我还有一个外部cron,它可以运行我告诉它的任何链接(比如外部cron链接),所以如果给我一个链接,我可以每月运行一次。我不知道该怎么做的部分是如何将其设置为通过电子邮件发送,或者如何获取一个链接以通过外部cron作业运行它/将其设置为在月初通过内部cron运行你可以在这里有更多的解决方案,最终取决于你,哪一个更适合你: 在自定义模块中,我将实现hook_c

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


此视图已全部设置并提取我需要的数据。我还有一个外部cron,它可以运行我告诉它的任何链接(比如外部cron链接),所以如果给我一个链接,我可以每月运行一次。我不知道该怎么做的部分是如何将其设置为通过电子邮件发送,或者如何获取一个链接以通过外部cron作业运行它/将其设置为在月初通过内部cron运行你可以在这里有更多的解决方案,最终取决于你,哪一个更适合你:

  • 在自定义模块中,我将实现hook_cron()。在这个钩子里我 将执行我想要的视图(这并不难,如果需要,请告诉我 这里需要帮助),然后通过电子邮件发送整个输出(我猜是这样的) 这就是你想要的)。现在,您希望发送此电子邮件 每月仅一次。为此,您有两种可能:

    • 在cron钩子中处理这个问题:基本上,您在变量中存储上次发送邮件的时间(使用variable_set/variable_get),如果您在上个月发送了邮件,那么这意味着您必须再次发送邮件,因此您首先更新变量,调用视图,准备输出并通过邮件发送
    • 有一个名为elysia_cron的模块:您可以对其进行配置,以便站点上的每个cron钩子只在特定时间运行(就像配置crontab一样)
  • 另一个解决方案是在站点上设置一个端点,而不是 hook_cron(),基本上与前面的 解决方案:调用视图并发送邮件。区别在于 您可以将crontab配置为随时调用此URL, 因此不需要特殊配置。这里还有一件事,那就是 访问此端点。在我看来,这应该是某种程度上 受限,但因为无法基于 用户角色(您的cron将仅以匿名用户的身份调用端点), 您必须找到另一个解决方案(附加到 url,或者可以从特定ip调用enpoint, 等等。这就是我喜欢hook_cron()的主要原因,因为 这更适合Drupal

  • 我是一名Drupal开发人员,因此在这种特殊情况下,我要做的是1)