Orchard CMS在使用工作流提交表单时向多个/不同的电子邮件地址发送电子邮件

时间:2014-09-08 17:10:45

标签: forms email workflow orchardcms contacts

我构建了一个自定义(联系我们)表单,其中包含一个下拉列表,其中包含多个选项,我需要创建一个工作流,根据下拉列表中的哪个项目选择将电子邮件发送到特定地址,但我没有想法如何去做这个,因为果园中的工作流只允许在提交表单时发送电子邮件,而不是基于表单中的任何内容。这可能吗?我是否需要创建一个自定义工作流活动,以某种方式搜索表单内容以查找用户指定的文本,然后在表单中找到文本时发送电子邮件?

1 个答案:

答案 0 :(得分:3)

如果您可以编写一些C#代码,则可以使用C#Scripting模块提供的Decision活动。

在发送电子邮件之前运行此活动,您可以执行以下操作:

var office = "{Content.Fields.ContactUs.Office}";
var email = "";

if (office == "LONDON") email = "london@[...].com";
else if (office == "PARIS") email = "jacques@[...].com";
else if (office == "GLOBAL") email = "world@[...].com;

Workflow.SetState("EmailAddress", email);
SetOutcome("Done");

决策活动只有一个可能的结果:“完成”。在“发送电子邮件”活动中,您将获得如下所示的电子邮件地址:

{Workflow.State:EmailAddress}

注意:如果使用Orchard 1.8和“Workflow.SetState()”方法,请参阅:https://orchard.codeplex.com/discussions/568460