Как собрать список URL-адресов файлов с помощью правил и отправить одно электронное письмо, содержащее этот список?


Я использую модуль Правила для отправки электронной почты, когда узел содержимого сохраняется/обновляется.

У меня есть базовый узел, где пользователи могут загружать большое количество файлов и вводить адрес электронной почты, чтобы уведомить кого-либо об изменении.

В этом примере действие правил для Отправки электронной почты находится в цикле правил, и я получаю одно электронное письмо на элемент в списке. Когда я перемещаю Отправить электронное письмо влево, я не могу получить доступ к "list_item" переменная.

Правила Событий:

  • После сохранения нового содержимого
  • После обновления существующего контента

Правила И Условия:

  • Содержимое имеет тип, Параметр: Содержимое: [узел], Типы содержимого: Базовая страница

  • Значение НЕ данных пустое, Параметр: Данные для проверки: [узел: поле-электронная почта]

Правила Действия:

  • Петля

  • Параметр: Список: [узел: файл поля]

  • Элемент списка: Текущий элемент списка (list_item)

    • Отправить Электронное Письмо
    • Параметр: Кому: [узел: поле -электронная почта], Тема: Тест [узел: заголовок], Сообщение: [элемент списка: файл: url], От: [email protected]
Author: Pierre.Vriens, 2012-12-12

2 answers

Проблемы с тем, что вы пробовали до сих пор

Действие правил для Отправки электронной почты находится в цикле правил, и я получаю по одному электронному письму на элемент в списке

Ваше правило работает так, как реализовано: для каждой итерации вашего цикла у вас есть действие Отправить электронное письмо ... Конечно, это не совсем то, чего вы хотите...

Когда я перемещаю Отправку электронной почты влево, я не могу получить доступ к переменной "list_item".

С этим "перемещением Электронная почта слева", вы должны иметь в виду что-то вроде " Используя пользовательский интерфейс Правил, я изменяю Действие Правил на Отправить электронное письмо, чтобы оно больше не рассматривалось как одно из действий Правил, выполняемых для каждой итерации цикла. И вместо этого Отправьте электронное письмо Действие правил должно выполняться только 1 раз после завершения цикла правил".

Так что да, это способ выполнить только такое Отправить электронное письмо Действие правил 1 время (вместо для каждой итерации цикла). Однако, поступая таким образом, ваши правила действия по Отправке электронного письма больше не имеют доступа к этой важной переменной list_item, которая похожа на локальную переменную внутри вашего цикла.

Решение, чтобы заставить его работать в любом случае

Однако, если то, что вы ищете (= список файлов, сохраненных в поле "Файл"), недоступно, то просто (а) сначала сделайте это доступным и (б) подождите с вашим действием Отправить электронное письмо , пока оно не будет доступно. Читайте дальше для получения более подробной информации...

Трюк для этого аналогичен тому, что показано в примере правил, включенном в мой ответ на " Как объединить все значения токенов списка в одном поле в цикле правил?". В вашем случае вы могли бы заставить его работать так:

  1. Добавьте некоторую новую переменную правил, которая будет использоваться позже как часть текста письма, перед началом вашего цикла. Скажем, вы называете переменную file_list_var_for_email_body.
  2. В пределах вашего цикл, для каждой итерации добавляйте или добавляйте значение для каждого list_item к этой переменной file_list_var_for_email_body (см., куда мы идем???).
  3. Переместите это действие Отправить электронное письмо за пределы вашего цикла и после завершения цикла. И точно настройте детали (конфигурацию) действия ваших правил, чтобы Отправить электронное письмо . При этом вы сможете выбрать маркер для file_list_var_for_email_body, чтобы включить его в любое место в тексте вашего электронного письма.

Легко, нет?

 0
Author: Pierre.Vriens, 2017-04-13 12:47:06

Объединение текста в Правилах было трудным, когда я это делал. Что я сделал, так это сохранил две переменные: текстовый массив со значением начального элемента (например, "Это дайджест:...") и текстовое значение.

Для каждой итерации цикла по элементам для объединения в дайджест и т.д. Я установил текстовое значение в качестве первого элемента в массиве ([массив:0]), а затем установил значение [массив:0] как объединение текстового значения и нового значения из цикла. Когда цикл завершается, вы знаете, что [массив:0] содержит содержимое дайджеста.

Я не знаю, почему это не могло работать более простым способом, объединяя текстовое значение в каждом цикле напрямую или используя два текстовых значения вместо массива. Когда я попробовал любой из других способов, он сохранил только последний или первый элемент того, что было объединено.

 0
Author: Dzon, 2015-12-21 15:59:47