电子邮件活动表

电子邮件活动可帮助您跟踪和管理与客户的邮件往来。

对电子邮件活动执行的操作

使用 Dataverse Web 服务,可以对电子邮件活动执行以下作:

  • 创建、检索、更新和删除电子邮件活动。

  • 发送电子邮件消息,或使用电子邮件模板发送电子邮件消息 Template。 有关电子邮件模板的详细信息,请参阅 “创建电子邮件模板”。

  • 使用电子邮件中的 ()ActivityMimeAttachment 属性将文件作为附件附加。

  • 发送批量或群发邮件。

  • 配置从 Microsoft Exchange Server 发送到任意用户或队列的入站邮件,或从任意用户/队列发往 Exchange 服务器的出站邮件。

    如果Organization.RequireApprovalForuserEmailOrganization.RequireApprovalForQueueEmail“仅为批准的用户/队列处理电子邮件”组织属性设置为 true(1),则会发生以下情况:只有在用户或队列的主电子邮件地址获得批准时,才会从用户或队列传送或发送电子邮件。 SystemUser.EmailRouterAccessApprovalQueue.EmailRouterAccessApproval 属性分别指示用户和队列主电子邮件地址的状态,每个属性的值必须设置为 1。 否则,将阻止传入和传出的消息。 如果用户帐户分配了 prvApproveRejectEmailAddress 权限,则可以更新用户或队列记录以更改属性值(如果尚未处于已批准状态)。

注释

在 Dataverse 中,属性 Email.StatusCode 不能为 null

批量电子邮件

Dataverse 支持通过批量电子邮件请求向大型收件人列表发送电子邮件。 当批量电子邮件请求被发送到 Dataverse 时,会在异步服务队列中创建一个异步操作,该操作使用后台进程来发送电子邮件。 这可以提高系统性能。

这些 SendBulkMailRequestBackgroundSendEmailRequest 消息用于发送批量电子邮件。 下面列出了用于发送批量电子邮件的顺序:

  1. 执行 SendBulkMail 请求。 此请求包含一个选择目标电子邮件收件人的查询,以及一个用于撰写每封电子邮件的电子邮件模板。

  2. 异步服务为每个收件人创建电子邮件活动。

  3. 异步服务发送每封电子邮件。 电子邮件具有 “pending” 发送状态。

  4. 邮件路由器、Dynamics 365 for Outlook 或第三方邮件发送组件会轮询 Dataverse 获取待处理邮件,若发现邮件则通过 BackgroundSendEmail 请求下载。

  5. BackgroundSendEmail 请求执行以下作:检查是否存在待处理的电子邮件,将电子邮件下载给消息的 BackgroundSendEmailRequest 调用者,如果有多个调用者,则同步下载。

    注释

    电子邮件服务提供商可能会有限制,这些限制会影响一段时间内可以发送的电子邮件数。 详细信息:Exchange Online 限制 > 邮件发送限制

  6. BackgroundSendEmailRequest 消息的调用方收到下载的电子邮件,并将其发送出去。

电子邮件附件

电子邮件附件是可以附加到电子邮件消息或电子邮件模板的文件。 附加文件可以采用任何标准计算机文件格式,例如 Office Outlook 文档、Office Excel 电子表格、CAD 文件和 PDF 文件。 您可以将多个文件作为电子邮件附件附加到电子邮件或电子邮件模板。 可以上传的最大文件大小由 Organization.MaxUploadFileSize 属性确定。 此属性在 Dynamics 365 应用程序的 系统设置的电子邮件 选项卡中设置。 此设置限制可附加到电子邮件、便笺和 Web 资源的文件大小。 默认设置为 5 MB。

为邮件或模板附加附件时,需在创建或更新活动 MIME 附件行时使用 ActivityMimeAttachment.ObjectIdActivityMimeAttachment.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.ObjectIdActivityMimeAttachment.ObjectTypeCode 属性的值。

ObjectId = new EntityReference(Template.EntityLogicalName, _templateId), ObjectTypeCode = Template.EntityLogicalName,  

有关如何创建电子邮件附件的完整代码示例,请参阅 示例:创建、检索、更新和删除电子邮件附件

重复使用电子邮件附件

当您创建电子邮件附件记录时,附加的文件将另存为文件 BLOB。 电子邮件附件记录的 ActivityMimeAttachment.AttachmentId 属性唯一标识文件 BLOB。 这样做是为了便于将文件附件与其他电子邮件和电子邮件模板记录重复使用,而无需在数据库中创建和存储同一文件的多个副本。

要重复使用现有文件附件:

  1. 检索包含待复用附件文件的 ActivityMimeAttachment 行,如下代码示例所示:

    ActivityMimeAttachment retrievedAttachment = 
        (ActivityMimeAttachment)_serviceProxy
        .Retrieve(ActivityMimeAttachment.EntityLogicalName, _emailAttachmentId, new ColumnSet(true));  
    
  2. 创建新的电子邮件附件,将其与所需的电子邮件或电子邮件模板行相关联,并将其指向检索 ActivityMimeAttachment 行的附加文件,如以下代码示例所示:

    ActivityMimeAttachment _reuseAttachment = new ActivityMimeAttachment{  
      ObjectId = new EntityReference(Email.EntityLogicalName, _emailId),  
      ObjectTypeCode = Email.EntityLogicalName,  
      Subject = "Sample Attachment",  
      AttachmentId = retrievedAttachment.AttachmentId};  
    

由于要重用现有附件文件,因此在创建电子邮件附件行并将电子邮件附件行关联到电子邮件或电子邮件模板时,无需指定 ActivityMimeAttachment.BodyActivityMimeAttachment.FileName 列值。

电子邮件存储

电子邮件描述(电子邮件正文)一直以来都存储在 Dataverse 关系存储中。 该机制正在变更:邮件活动表中的 Email.Description 列将迁移至非结构化 Azure Blob 存储。 Azure Blob 存储还用于存储附件、批注、文件和图像。

转换期

数据从 Dataverse 关系存储迁移到所有客户的 Azure Blob 存储预计将从 2023 年 5 月开始。 此数据迁移将作为后台进程(作业)进行。 现有客户的初始数据移动预计将持续约 6 到 12 周,并且可能更长的时间,具体取决于数据的大小。 初始数据移动后,任何剩余的迁移都是一个持续的过程。 超过 12 个月的所有电子邮件说明将自动移动到 Azure Blob 存储中,并且此 12 个月的过渡期无法更改。 满 12 个月之前,不会移动较新的电子邮件。 邮件描述迁移作业周期性运行——每个租户约每 30-60 天执行一次。

此数据迁移对于你而言是透明的,但完成迁移过程后,你会看到 ActivityPointer 表的大小会减少。 在 Power Platform 管理中心容量报告中,文件使用情况将新增电子邮件行项目。 最终结果是文件存储的总体消耗量增加,而数据库存储的消耗量减少。

注释

由于压缩文件数据,文件存储的增加可能小于从 ActivityPointer 表中删除的内容。

下一部分中提到的限制将开始应用于已移动到 Dataverse 托管的 Azure Blob 存储的任何数据,即使所有数据移动均未完成。

搜索和筛选限制

对于存储在 Azure Blob 存储中的电子邮件说明(正文),某些限制适用于筛选、查找和搜索电子邮件说明,如下所示。

Filtering

不支持对电子邮件说明进行筛选。 要考虑的一些具体要点如下所示。

  • FetchXML - 无法使用 FetchXML 在电子邮件正文中进行搜索。
  • 不支持快速查找和高级查找 - 不支持使用这些方法筛选电子邮件说明。

小窍门

对于快速查找,虽然不支持筛选,但电子邮件正文可以添加为返回的列,正文数据将在结果中返回。

搜索

可以在电子邮件说明上启用 Dataverse 搜索 以搜索电子邮件说明。

另请参阅

活动表
示例:发送电子邮件
电子邮件表
ActivityMimeAttachment 表