在 Microsoft Dynamics CRM 中分发市场活动的电子邮件活动时,电子邮件活动不会自动发送到收件人

本文已归档。它按“原样”提供,并且不再更新。
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
症状
在 Microsoft Dynamics CRM 中分发市场活动的电子邮件活动时,电子邮件活动不会自动发送到收件人。您必须打开每个电子邮件活动,然后手动发送每一个电子邮件活动。
解决方案
要解决此问题,请安装 Microsoft Dynamics CRM 3.0 的更新汇总 1。有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
922815现已推出 Microsoft Dynamics CRM 3.0 的更新汇总 1

安装信息

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。

在安装此更新汇总后,请创建一个名为 CampaignSendEmail 的注册表项。为此,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 在注册表编辑器中,找到下面的注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSCRM
  3. 创建注册表项。为此,请按照下列步骤操作:
    1. 右键单击“MSCRM”,指向“新建”,然后单击“DWORD 值”。
    2. 在“名称”字段中,键入 CampaignSendEmail
    3. 双击此注册表项,然后在“值”字段中键入 1

      注意:如果在“值”字段中键入 1,CRM 将自动发送市场活动的电子邮件活动。如果在“值”字段键入 0,CRM 将不会自动发送从市场活动创建的电子邮件。
状态
Microsoft 已经确认这是在“适用于”部分中列出的 Microsoft 产品中存在的问题。
替代方法
要用替代方法解决此问题而不安装此修补程序,请创建一个用于自动发送电子邮件活动的 Workflow .NET 程序集。

注意:Microsoft CRM 3.0 不支持满足下列条件的 .NET 程序集:
  • .NET 程序集是通过使用 Microsoft Visual Studio .NET 2005 和 .NET Framework 2.0 版创建的。
  • 您打算将 .NET 程序集用作 Callout 程序集或 Workflow 程序集。
要创建 Workflow .NET 程序集,请按照下列步骤操作:
  1. 在 Microsoft CRM 电子邮件表单上创建一个新的位类型字段,以指定该电子邮件活动用于市场活动:
    1. 在 Microsoft CRM 中,单击“转到”,指向“设置”,然后依次单击“自定义”、“自定义实体”、“电子邮件”、“其他操作”,然后单击“编辑”。
    2. 单击“属性”,然后单击“新建”。
    3. 在“显示名称”字段中,键入一个名称。本示例使用名称“Campaign E-mail”。
    4. 在“类型”列表中,单击“位”。
    5. 在“默认值”列表中,单击“否”,然后单击“保存并关闭”。
    6. 单击“表单和视图”。
    7. 依次单击“表单”、“其他操作”,然后单击“编辑”。
    8. 单击“添加字段”,单击刚创建的新字段,单击“确定”,然后单击“保存并关闭”。
    9. 在“电子邮件实体”窗口中,依次单击“操作”、“发布”,然后单击“保存并关闭”。
  2. 创建一个用于发送电子邮件活动的 .NET 程序集。下列步骤将使用 Microsoft Visual Studio .NET 2003 新建一个名为 AutoSend 的类库:
    1. 启动 Visual Studio .NET 2003,然后单击“新建项目”。
    2. 单击“Visual C# 项目”,单击“类库”,在“名称”中键入 AutoSend,然后单击“确定”。
    3. 在解决方案资源管理器中,右键单击“引用”,然后单击“添加 Web 引用”。
    4. 在“URL”字段中,键入 Crmservice.asmx 文件的路径。在下面的示例中,localhost:5555 是 Microsoft CRM 网站名称的占位符:
      http://localhost:5555/mscrmservices/2006/crmservice.asmx
    5. 将“Web 引用名”字段中的值更改为 CrmSdk
    6. 单击“添加引用”。
    7. 添加下面的 using 语句。
       using AutoSend.CrmSdk; 
    8. 创建一个 public 方法,该方法接受电子邮件 ActivityId 字段的 Guid 参数。

      注意:必须将 service.CallerIdValue.CallerGuid 行中指定的 GUID 值替换为 Microsoft CRM 系统中有权限发送电子邮件活动的用户的 SystemUserId 字段中的 GUID 值。

      可以使用 Fetch 方法检索此用户。此方法类似于以下代码。
       public void SendEmail(Guid campaignActivityID)		{			CrmService service = new CrmService();			service.Credentials = System.Net.CredentialCache.DefaultCredentials;			service.CallerIdValue = new CallerId();			// Replace the GUID with the GUID of    the Microsoft CRM Administrator.			service.CallerIdValue.CallerGuid = new    Guid("FD80F8E8-C852-DA11-B1FB-0007E94D105B");			SendEmailRequest req = new SendEmailRequest();			req.EmailId = campaignActivityID;			req.TrackingToken = "";                                                                   			req.IssueSend = true;      			try 			{				SendEmailResponse res = (SendEmailResponse)service.Execute(req);			}			catch (System.Web.Services.Protocols.SoapException er)			{				// Process any error messages here.			}		} 
    9. 在更改 service.CallerIdValue.CallerGuid 行之后,单击“生成”,然后单击“生成解决方案”。
    10. 将解决方案的 Bin\Debug 文件夹中新创建的 AutoSend.dll 文件复制到以下文件夹中:
      Program Files\Microsoft CRM\Server\Bin\Assembly
  3. 将程序集信息添加到 Workflow.config 文件中:
    1. 单击“开始”,依次指向“程序”、“管理工具”,然后单击“服务”。
    2. 在“服务”窗口中,右键单击“Microsoft CRM Workflow Service”,然后单击“停止”。
    3. 找到 Workflow.config 文件,然后在记事本中打开此文件。默认情况下,路径如下所示:
      C:\Program Files\Microsoft CRM\Server\Bin\Assembly\Workflow.config
    4. methods 节点中,粘贴以下信息。
       <method name="E-mail"		assembly="AutoSend.dll"		typename="AutoSend.Class1"		methodname="SendEmail">		<parameter name="E-mailId" datatype="lookup" entityname="email"/></method> 
    5. 将 Workflow.config 文件的第一行更改为如下内容。
       <workflow.config xmlns="http://microsoft.com/mscrm/workflow/" allowunsignedassemblies="true"> 
    6. 保存该文件后将其关闭。
    7. 在“服务”窗口中,右键单击“Microsoft CRM Workflow Service”,然后单击“启动”。

      注意:如果“服务”窗口尚未打开,请重复步骤 3a。
  4. 创建一个调用 Microsoft .NET 程序集以发送电子邮件活动的工作流程规则:
    1. 在 Microsoft CRM Web 服务器上,单击“开始”,指向“程序”,指向“Microsoft CRM”,然后单击“工作流程管理器”。
    2. 在“实体类型”列表中,单击“电子邮件”,然后单击“新建”。
    3. 在“名称”字段中,键入 Send Campaign E-mail。在“事件”框中,使“创建”保持选定状态,然后单击“下一步”。
    4. 单击“插入条件”,然后单击“检查条件”。
    5. 依次单击“请在此处添加条件”、“插入条件”和“检查实体条件”。
    6. 在“字段”列表中,单击“Campaign E-mail”,单击等号,然后单击查找按钮。
    7. 在“静态值”列表中,单击“是”,然后单击“确定”两次。
    8. 单击“插入条件”,然后单击“检查实体条件”。
    9. 在“字段”列表中,依次单击“方向”、等号和查找按钮。
    10. 在“静态值”列表中,单击“传出”,然后单击“确定”两次。
    11. 单击“请在此处添加操作”,单击“插入操作”,指向“调用程序集”,然后单击“电子邮件”。
    12. 在“操作名称”框中,键入 Send Campaign E-mail
    13. 双击“E-mailId”参数,单击“动态值”,使“实体”框中的“电子邮件”处于选定状态,然后单击“确定”两次。
    14. 单击“保存”。
    15. 右键单击新创建的规则,然后单击“激活”。
  5. 测试该规则。为此,创建一个新的市场活动电子邮件活动,然后将“Campaign E-mail”字段设置为“是”:
    1. 在 Microsoft CRM 中,选择一个测试帐户记录,单击“创建快速市场活动”,然后单击“对于选定记录”。
    2. 单击“下一步”,然后在“名称”文本框中键入 Test Quick Campaign
    3. 依次单击“下一步”、“电子邮件”和“下一步”。
    4. 在“主题”框中,键入 Test E-mail,然后在电子邮件正文中键入 Test
    5. 在“Campaign E-mail”字段中,单击“是”,然后单击“下一步”。
    6. 单击“创建”,然后验证该电子邮件活动已发送。
参考
824684 有关用于描述 Microsoft 软件更新标准术语的介绍
887283 Microsoft Business Solutions CRM 软件修补程序和更新包命名标准
属性

文章 ID:911520 - 上次审阅时间:01/16/2015 01:44:57 - 修订版本: 6.3

  • Microsoft Dynamics CRM 3.0
  • Microsoft Dynamics CRM 3.0 Professional Edition for Service Providers
  • kbnosurvey kbarchive kbqfe kbpubtypekc kbmbsmigrate kbhotfixserver kbmbsemail kbmbsworkflow KB911520
反馈