代码之家  ›  专栏  ›  技术社区  ›  EmeraldArcher

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

  •  2
  • EmeraldArcher  · 技术社区  · 10 年前

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

    1 回复  |  直到 10 年前
        1
  •  3
  •   Marco Serralheiro    10 年前

    如果可以编写一些C#代码,则可以使用C#脚本模块提供的决策活动。

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

    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