在 Microsoft Dynamics CRM 中分发市场活动的电子邮件活动时,电子邮件活动不会自动发送到收件人。您必须打开每个电子邮件活动,然后手动发送每一个电子邮件活动。
要解决此问题,请安装 Microsoft Dynamics CRM 3.0 的更新汇总 1。
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
922815
(http://support.microsoft.com/kb/922815/
)
现已推出 Microsoft Dynamics CRM 3.0 的更新汇总 1
安装信息
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
在安装此更新汇总后,请创建一个名为 CampaignSendEmail 的注册表项。为此,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
- 在注册表编辑器中,找到下面的注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSCRM
- 创建注册表项。为此,请按照下列步骤操作:
- 右键单击“MSCRM”,指向“新建”,然后单击“DWORD 值”。
- 在“名称”字段中,键入 CampaignSendEmail。
- 双击此注册表项,然后在“值”字段中键入 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 程序集,请按照下列步骤操作:
- 在 Microsoft CRM 电子邮件表单上创建一个新的位类型字段,以指定该电子邮件活动用于市场活动:
- 在 Microsoft CRM 中,单击“转到”,指向“设置”,然后依次单击“自定义”、“自定义实体”、“电子邮件”、“其他操作”,然后单击“编辑”。
- 单击“属性”,然后单击“新建”。
- 在“显示名称”字段中,键入一个名称。本示例使用名称“Campaign E-mail”。
- 在“类型”列表中,单击“位”。
- 在“默认值”列表中,单击“否”,然后单击“保存并关闭”。
- 单击“表单和视图”。
- 依次单击“表单”、“其他操作”,然后单击“编辑”。
- 单击“添加字段”,单击刚创建的新字段,单击“确定”,然后单击“保存并关闭”。
- 在“电子邮件实体”窗口中,依次单击“操作”、“发布”,然后单击“保存并关闭”。
- 创建一个用于发送电子邮件活动的 .NET 程序集。下列步骤将使用 Microsoft Visual Studio .NET 2003 新建一个名为 AutoSend 的类库:
- 启动 Visual Studio .NET 2003,然后单击“新建项目”。
- 单击“Visual C# 项目”,单击“类库”,在“名称”中键入 AutoSend,然后单击“确定”。
- 在解决方案资源管理器中,右键单击“引用”,然后单击“添加 Web 引用”。
- 在“URL”字段中,键入 Crmservice.asmx 文件的路径。在下面的示例中,localhost:5555 是 Microsoft CRM 网站名称的占位符:
http://localhost:5555/mscrmservices/2006/crmservice.asmx
- 将“Web 引用名”字段中的值更改为 CrmSdk。
- 单击“添加引用”。
- 添加下面的 using 语句。
- 创建一个 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.
}
} - 在更改 service.CallerIdValue.CallerGuid 行之后,单击“生成”,然后单击“生成解决方案”。
- 将解决方案的 Bin\Debug 文件夹中新创建的 AutoSend.dll 文件复制到以下文件夹中:
Program Files\Microsoft CRM\Server\Bin\Assembly
- 将程序集信息添加到 Workflow.config 文件中:
- 单击“开始”,依次指向“程序”、“管理工具”,然后单击“服务”。
- 在“服务”窗口中,右键单击“Microsoft CRM Workflow Service”,然后单击“停止”。
- 找到 Workflow.config 文件,然后在记事本中打开此文件。默认情况下,路径如下所示:
C:\Program Files\Microsoft CRM\Server\Bin\Assembly\Workflow.config
- 在 methods 节点中,粘贴以下信息。
<method name="E-mail"
assembly="AutoSend.dll"
typename="AutoSend.Class1"
methodname="SendEmail">
<parameter name="E-mailId" datatype="lookup"
entityname="email"/>
</method>
- 将 Workflow.config 文件的第一行更改为如下内容。
<workflow.config xmlns="http://microsoft.com/mscrm/workflow/"
allowunsignedassemblies="true">
- 保存该文件后将其关闭。
- 在“服务”窗口中,右键单击“Microsoft CRM Workflow Service”,然后单击“启动”。
注意:如果“服务”窗口尚未打开,请重复步骤 3a。
- 创建一个调用 Microsoft .NET 程序集以发送电子邮件活动的工作流程规则:
- 在 Microsoft CRM Web 服务器上,单击“开始”,指向“程序”,指向“Microsoft CRM”,然后单击“工作流程管理器”。
- 在“实体类型”列表中,单击“电子邮件”,然后单击“新建”。
- 在“名称”字段中,键入 Send Campaign E-mail。在“事件”框中,使“创建”保持选定状态,然后单击“下一步”。
- 单击“插入条件”,然后单击“检查条件”。
- 依次单击“请在此处添加条件”、“插入条件”和“检查实体条件”。
- 在“字段”列表中,单击“Campaign E-mail”,单击等号,然后单击查找按钮。
- 在“静态值”列表中,单击“是”,然后单击“确定”两次。
- 单击“插入条件”,然后单击“检查实体条件”。
- 在“字段”列表中,依次单击“方向”、等号和查找按钮。
- 在“静态值”列表中,单击“传出”,然后单击“确定”两次。
- 单击“请在此处添加操作”,单击“插入操作”,指向“调用程序集”,然后单击“电子邮件”。
- 在“操作名称”框中,键入 Send Campaign E-mail。
- 双击“E-mailId”参数,单击“动态值”,使“实体”框中的“电子邮件”处于选定状态,然后单击“确定”两次。
- 单击“保存”。
- 右键单击新创建的规则,然后单击“激活”。
- 测试该规则。为此,创建一个新的市场活动电子邮件活动,然后将“Campaign E-mail”字段设置为“是”:
- 在 Microsoft CRM 中,选择一个测试帐户记录,单击“创建快速市场活动”,然后单击“对于选定记录”。
- 单击“下一步”,然后在“名称”文本框中键入 Test Quick Campaign。
- 依次单击“下一步”、“电子邮件”和“下一步”。
- 在“主题”框中,键入 Test E-mail,然后在电子邮件正文中键入 Test。
- 在“Campaign E-mail”字段中,单击“是”,然后单击“下一步”。
- 单击“创建”,然后验证该电子邮件活动已发送。
824684
(http://support.microsoft.com/kb/824684/
)
有关用于描述 Microsoft 软件更新标准术语的介绍
887283
(http://support.microsoft.com/kb/887283/
)
Microsoft Business Solutions CRM 软件修补程序和更新包命名标准
文章编号: 911520 - 最后修改: 2007年4月3日 - 修订: 6.3
这篇文章中的信息适用于:
- Microsoft Dynamics CRM 3.0
- Microsoft Dynamics CRM 3.0 Professional Edition for Service Providers
| kbqfe kbpubtypekc kbmbsmigrate kbhotfixserver kbmbsemail kbmbsworkflow KB911520 |
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。