电子邮件活动实体
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
您可以通过电子邮件活动跟踪和管理与客户之间的电子邮件通信。Microsoft Dynamics 365 中包含 电子邮件路由器 软件,用于管理与 Microsoft Dynamics 365 之间往来的电子邮件路由。 电子邮件活动使用电子邮件协议传递。电子邮件路由器 支持以下电子邮件协议:Exchange Web 服务、POP3 和 SMTP。 除了电子邮件路由器软件之外,还可以使用 Microsoft Dynamics 365 for Outlook 传递电子邮件活动。
本主题内容
对电子邮件活动执行的操作
批量电子邮件
电子邮件附件
对电子邮件活动执行的操作
使用 Microsoft Dynamics 365 SDK,您可以对电子邮件活动执行以下操作:
创建、检索、更新和删除电子邮件活动。
发送电子邮件或者使用电子邮件模板 (Template) 发送电子邮件。 有关电子邮件模板的详细信息,请参阅模板(电子邮件模板)实体消息和方法。
在电子邮件中使用 (ActivityMimeAttachment) 属性附加文件作为附件。
发送大量或批量电子邮件。
将传入电子邮件配置为从 Microsoft Exchange Server 传递给任何用户或队列,或者将传出电子邮件配置为从任何用户或队列发送给 Microsoft Exchange Server。 有关如何为队列配置传入电子邮件的信息,请参阅为传入消息配置电子邮件。
如果 Organization.RequireApprovalForuserEmail 和 Organization.RequireApprovalForQueueEmail(仅为经过批准的用户/队列处理电子邮件)组织属性设置为 true (1),则发生以下情况:仅当用户或队列的主要电子邮件地址获得批准后,才从用户或队列传递或发送电子邮件。SystemUser.EmailRouterAccessApproval 和 Queue.EmailRouterAccessApproval 属性分别指示用户和队列的主要电子邮件地址的状态,值必须设置为 1。 否则,将阻止传入和传出邮件。 如果属性值尚未处于已批准状态,您可以更新用户或队列记录以对它进行更改,只要您的用户帐户分派了 prvApproveRejectEmailAddress 特权。 有关详细信息,请参阅权限映射的安全角色 UI。
备注
在 Microsoft Dynamics 365(在线或本地) 中,Email.StatusCode 属性不能为 null。
批量电子邮件
Microsoft Dynamics 365 支持通过批量电子邮件请求将电子邮件发送到很多收件人。 将批量电子邮件请求发送到 Microsoft Dynamics 365 时,会在异步服务队列中创建一个异步操作,以使用后台进程发送电子邮件。 这样可以提高系统性能。
SendBulkMailRequest 和 BackgroundSendEmailRequest 消息用于发送批量电子邮件。 下面列出了用于发送批量电子邮件的顺序:
执行 SendBulkMail 请求。 该请求包含选择目标电子邮件收件人和电子邮件模板(用于书写每封电子邮件)的查询。
异步服务为每个收件人都创建电子邮件活动。
异步服务发送每封电子邮件。 电子邮件具有“挂起”发送状态。
电子邮件路由器、Microsoft Dynamics 365 for Outlook 或第三方电子邮件发送组件轮询 Microsoft Dynamics 365 以查找挂起的电子邮件,如果找到挂起的电子邮件,则使用 BackgroundSendEmail 请求进行下载。
BackgroundSendEmail 请求执行下列操作:检查是否存在挂起的电子邮件,将电子邮件下载到 BackgroundSendEmailRequest 消息的调用程序,并在具有多个调用程序的情况下同步下载内容。
BackgroundSendEmailRequest 消息的调用程序接收下载的电子邮件,并将其发送出去。
电子邮件附件
电子邮件附件是可以附加到电子邮件或电子邮件模板的文件。 附加的文件可以采用任何标准的计算机文件格式,如 Microsoft Office Word 文档、Microsoft Office Excel 电子表格、CAD 文件和 PDF 文件。 可以将多个文件作为电子邮件附件附加到电子邮件或电子邮件模板。可以上载的最大文件大小由 Organization.MaxUploadFileSize 属性确定。 该属性在 Dynamics 365 应用程序的“系统设置”的“电子邮件”选项卡中设置。 此设置限制可以附加到电子邮件、注释和 Web 资源的文件大小。 默认设置为 5 MB。
要将电子邮件附件附加到电子邮件或模板,可以在创建或更新活动 MIME 附件记录时使用 ActivityMimeAttachment.ObjectId 和 ActivityMimeAttachment.ObjectTypeCode 属性。
以下代码示例演示如何将电子邮件附件附加到电子邮件:
ActivityMimeAttachment _sampleAttachment = new ActivityMimeAttachment{
ObjectId = new EntityReference(Email.EntityLogicalName, _emailId),
ObjectTypeCode = Email.EntityLogicalName,
Subject = "Sample Attachment”,
Body = System.Convert.ToBase64String(new ASCIIEncoding().GetBytes("Example Attachment")),
FileName = "ExampleAttachment.txt"};
同样,若要将电子邮件附件附加到模板而不是电子邮件,可以按如下方式替换上面代码中的 ActivityMimeAttachment.ObjectId 和 ActivityMimeAttachment.ObjectTypeCode 属性的值:
ObjectId = new EntityReference(Template.EntityLogicalName, _templateId), ObjectTypeCode = Template.EntityLogicalName,
有关如何创建电子邮件附件的完整代码示例,请参阅示例:创建、检索、更新和删除电子邮件附件。
重用电子邮件附件
创建电子邮件附件记录时,附加的文件保存为文件 BLOB。 电子邮件附件记录的 ActivityMimeAttachment.AttachmentId 属性唯一地标识文件 BLOB。 这样做是为了方便其他电子邮件和电子邮件模板记录重用文件附件,而不用在数据库中创建和存储同一文件的多个副本。
若要重用现有文件附件,请执行以下操作:
检索包含要重用的附件文件的 ActivityMimeAttachment 记录,如以下代码示例所示:
ActivityMimeAttachment retrievedAttachment = (ActivityMimeAttachment)_serviceProxy.Retrieve(ActivityMimeAttachment.EntityLogicalName, _emailAttachmentId, new ColumnSet(true));
新建电子邮件附件记录,将它与所需电子邮件或电子邮件模板记录相关联,并将它指向检索的 ActivityMimeAttachment 记录的附加文件,如以下代码示例所示:
ActivityMimeAttachment _reuseAttachment = new ActivityMimeAttachment{ ObjectId = new EntityReference(Email.EntityLogicalName, _emailId), ObjectTypeCode = Email.EntityLogicalName, Subject = "Sample Attachment”, AttachmentId = retrievedAttachment.AttachmentId};
因为您要重用现有附件文件,所以在创建电子邮件附件记录并将它们与电子邮件或电子邮件模板相关联时不必指定 ActivityMimeAttachment.Body 和 ActivityMimeAttachment.FileName 属性值。
另请参阅
活动实体
活动实体的示例代码
Email 实体消息和方法
ActivityMimeAttachment(电子邮件附件)实体消息和方法
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权