如何向每个用户发送关于Drupal中内容的自动电子邮件

如何向每个用户发送关于Drupal中内容的自动电子邮件,drupal,drupal-7,Drupal,Drupal 7,我有一个Drupal站点,允许用户创建帐户并发布自己的内容。然而,我已经尝试了几个小时,但没有运气尝试建立一个电子邮件服务,例如每周向所有用户发送一封包含内容的电子邮件。电子邮件将显示他们内容的页面点击量。任何帮助都将不胜感激!干杯我想在这种情况下,您必须使用modeule。我和我的同事已经找到了解决方案。我们首先创建了一个在cron作业上运行的规则,以执行下面的定制php $type = '<node_type>'; $articles = db_select('node') -

我有一个Drupal站点,允许用户创建帐户并发布自己的内容。然而,我已经尝试了几个小时,但没有运气尝试建立一个电子邮件服务,例如每周向所有用户发送一封包含内容的电子邮件。电子邮件将显示他们内容的页面点击量。任何帮助都将不胜感激!干杯

我想在这种情况下,您必须使用modeule。

我和我的同事已经找到了解决方案。我们首先创建了一个在cron作业上运行的规则,以执行下面的定制php

$type = '<node_type>';

$articles = db_select('node')
->fields('node', array('nid', 'title'))
->condition('type', $type, '=')
->execute()
->fetchAllKeyed();

$nodes = array();
foreach ($articles as $nid => $title) {
    $nodes[] = node_load($nid);
}

$checked = array();

foreach($nodes as $node) {
    if(!in_array($node->nid, $checked)) {
        $statistics = statistics_get($node->nid);
        $email = $node->field_email['und'][0]['email'];
        $subject = 'Content view update';
        $headers = 'From: you@domain.com' . "\r\n" .
        'Reply-To: you@domain.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

        $message =   'Hi,
        Your content has been viewed ' . $statistics . ' times';

        global $language;
        $params['subject'] = t($subject);
        $params['body']    = array(t($message));

        drupal_mail('smtp', 'smtp-test', $email, $language, $params);
        $checked[] = $node->nid;

    }
}
$type='';
$articles=db_select('节点')
->字段('node',数组('nid','title'))
->条件('type',$type',=')
->执行()
->fetchAllKeyed();
$nodes=array();
foreach($nid=>$title形式的文章){
$nodes[]=节点加载($nid);
}
$checked=array();
foreach($node作为$node){
如果(!in_数组($node->nid,$checked)){
$statistics=statistics\u get($node->nid);
$email=$node->field_email['und'][0]['email'];
$subject='内容视图更新';
$headers='来自:you@domain.com“。”\r\n”。
答复:you@domain.com“。”\r\n”。
'X-Mailer:PHP/'.phpversion();
$message='Hi,
您的内容已被浏览“$statistics.”次“;
全球语言;
$params['subject']=t($subject);
$params['body']=数组(t($message));
drupal_邮件('smtp','smtp测试',$email,$language,$params);
$checked[]=$node->nid;
}
}
php脚本循环遍历所有类型为
$type
的自定义内容节点,检索标题、电子邮件和统计信息,然后通过电子邮件将信息发送给内容所有者


如果有人有更好的解决方案,请发表评论

你能指出你面临的具体问题吗。。。看起来你想要实现很多事情。如何设置cron,如何收集相关数据(哪些是相关数据?),如何使用drupal发送电子邮件您可以将问题分成更具体的问题,以便更容易给出答案。如果您关心性能和超时,也请提及它们。