连接到 Exchange

Concept Information

ACCESSDATA 命令

使用 Exchange 数据连接器可从 Microsoft 的 Exchange 电子邮件和日历服务器导入数据。您可以从单个 Exchange 账户导入数据。

说明

您不能独立于 Analytics 使用此连接器。您可以使用 Windows ODBC 数据源管理器为连接器驱动程序配置一个 DSN,但是您必须从 Analytics 内部而不是从连接器的 Windows DSN 配置对话框中测试 DSN 连接。Analytics

开始之前

要连接到 Exchange,您必须收集以下信息:

  • Exchange 服务器的域名或 IP 地址(Exchange Web 服务 URL)
  • 您要连接到的 Exchange 平台的版本
  • 进行连接的用户账户,包括用户名和密码

有关收集连接必备信息的帮助,请联系Exchange您组织中的管理员。如果您的管理员不能帮助您,您或者您的管理员应该联系Exchange支持人员。

创建 Exchange 连接

  1. 从 Analytics 主菜单中选择导入 > 数据库和应用程序Analytics。
  2. 新建连接选项卡中,在 ACL 连接器部分中,选择 Exchange

    提示

    您可以通过在过滤连接框中输入搜索字符串来过滤可用连接器的列表。连接器按字母顺序排列。

  3. 数据连接设置面板中,输入连接设置,然后在面板底部单击保存并连接

    您可以接受默认的连接名称,也可以输入一个新的名称。

Exchange的连接被保存到现有连接选项卡。将来,您可以从已保存的连接重新连接到Exchange

一旦连接被建立,“数据访问”窗口将打开到暂存区域,并且您可以开始导入数据。有关从Exchange导入数据的帮助,请参见使用数据访问窗口

连接设置

基本设置

设置 描述 示例
用户 用来进行认证的 Exchange 账户的用户。此域和密码一起被用来向服务器进行认证。 recipient@example.com
密码

用来进行认证的 Exchange 账户的密码。此域和用户一起被用来向服务器进行认证。

 
服务器

您要连接到的 Exchange 服务器的地址。

应该将其设置为 Exchange Web 服务 URL。对于 Exchange Online,您应该将其设置为 https://outlook.office365.com/EWS/Exchange.asmx。

https://outlook.office365.com/EWS/Exchange.asmx
平台

与 Exchange 服务器相关联的平台。

Exchange_Online

高级设置

设置 描述 示例
将日期时间转换为 GMT

在导入过程中将日期时间域转换至 GMT 时区。如果为假,则该日期时间值被转换为运行 Analytics 的计算机的操作系统时区。

AuthScheme

用于认证的方案。

此域和密码及用户一起被用来向服务器进行认证。BASIC 是默认选项。请使用以下选项来选择您的认证方案:

  • NTLM 使用您的 Windows 凭据进行认证。
  • BASIC 使用 HTTP 基本认证。

    说明

    Microsoft 已经声明将在 2020 年 10 月为 Exchange Web Services 放弃基本认证。请考虑使用替代认证方案。

  • DIGEST 使用 HTTP 摘要认证。
  • NEGOTIATE 与服务器协商认证机制。将 AuthScheme 设置为 NEGOTIATE 可使用 Kerberos 认证。
  • KERBEROSDELEGATION 通过 Kerberos 协议使用委派。设置您想要模拟的账户的用户和密码。
BASIC
模拟类型

要在向 Exchange 站点发送请求时用于模拟的标识符的类型:

  • PrincipalName 表示要用于模拟的账户的用户主体名称 (UPN)。这应该是用户账户所在域的 UPN
  • SID 表示要用于模拟的账户的安全标识符 (SID) 的安全描述符定义语言 (SDDL) 形式
  • PrimarySmtpAddress 表示要用于 Exchange 模拟的账户的主要简单邮件传送协议 (SMTP) 地址。如果提供了主要 SMTP 地址,则需要执行一次额外的 Active Directory 目录服务查找以获取用户的 SID。建议您使用 SID 或 UPN(如果它们可用)
  • SmtpAddress 表示要用于 Exchange 模拟的账户的简单邮件传送协议 (SMTP) 地址。如果提供了 SMTP 地址,则需要执行一次额外的 Active Directory 查找以获取用户的 SID。建议您使用 SID 或 UPN(如果它们可用)
PrincipalName
模拟用户 要在向 Exchange 站点发送请求时模拟的用户。  
包括内容

是否为返回的所有记录包括消息体内容。

注意

此设置会影响性能,并且如果您正在处理许多记录,则可能导致您的查询超时。

密钥大小限制

主键列的最大长度。将大小设置为 0 会使键长度恢复到原始长度。

此属性使连接器覆盖所有主键列的报告长度。

255
映射到 Long Varchar

控制一个列是否被作为 SQL_LONGVARCHAR 返回。

使用此设置可映射任何大于指定大小的列,以便使它们被报告为 SQL_LONGVARCHAR 而不是 SQL_VARCHAR。

-1
映射到 WVarchar

控制字符串类型是否映射到 SQL_WVARCHAR 而不是 SQL_VARCHAR。它在默认情况下被设置。

必须将字符串列映射到 SQL_WVARCHAR 以适应各种国际字符集,因此 MapToWVarchar 默认情况下被设置为真。您可以将其设置为假以改而使用 SQL_VARCHAR。

伪列

指示是否将伪列作为列包括在表中。

此设置在 Entity Framework 中特别有用,它不允许您为伪列设置值,除非该列是表列。

此连接设置的值的格式为 "Table1=Column1, Table1=Column2, Table2=Column3"。您可以使用“*”字符包括所有表和所有列。

MyTable=*
SSL 服务器证书

要在使用 TLS/SSL 连接时从服务器接受的证书。您可以指定下列任一选项:

  • 完整的 PEM 证书
  • 包含证书的本地文件的路径
  • 公钥
  • MD5 指纹(还可以用空格或冒号分隔十六进制值)
  • SHA1 指纹(还可以用空格或冒号分隔十六进制值)

如果使用 TLS/SSL 连接,则此属性可被用来指定要从服务器接受的 TLS/SSL 证书。不被该计算机信任的任何其他证书都将被拒绝。

C:\cert.cer
支持增强的 SQL

通过启用内存客户端处理,增强 SQL 功能以超越可以通过 API 直接支持的功能:

  • 连接器将尽可能多的 SELECT 语句处理卸载到 IMAP,然后在内存中处理该查询的其余部分。这样,驱动程序就可以执行不受支持的谓词、联接和聚合
  • 连接器将 SQL 执行限制到 IMAP API 所支持的范围

谓词的执行

连接器确定哪些子句受到数据源的支持,然后将它们推送到数据源,以获取可满足查询的最小行超集。然后,它在本地过滤其余行。过滤器操作被简化,从而使驱动程序能够有效地对超大型数据集进行过滤。

联接的执行

连接器使用各种技巧在内存中联接。驱动程序以牺牲内存利用率为代价,避免了多次读取相同表。

聚合的执行

连接器检索在内存中处理聚合所需的所有行。

 
大写标识符 请用大写报告所有标识符(包括表和列名称)。
代理认证方案

用来向 ProxyServer 代理进行认证的认证类型。

此值指定用来向由 ProxyServer 和 ProxyPort 指定的 HTTP 代理进行认证的认证类型。

说明

连接器默认情况下将使用系统代理设置,而无需进一步的配置;如果您想要连接到另一代理,则除了设置 ProxyServer 和 ProxyPort 以外,您还需要将 ProxyAutoDetect 设置为假。要进行认证,请设置 ProxyAuthScheme,并且根据需要设置 ProxyUser 和 ProxyPassword。

认证类型可以是下列类型之一:

  • BASIC 驱动程序执行 HTTP BASIC 认证
  • DIGEST 驱动程序执行 HTTP DIGEST 认证。
  • NEGOTIATE 驱动程序基于适用于认证的协议检索 NTLM 或 Kerberos 令牌
  • PROPRIETARY 驱动程序不生成 NTLM 或 Kerberos 令牌。您必须在 HTTP 请求的授权标头中提供此令牌
BASIC
代理自动检测 指示是否使用系统代理设置。将 ProxyAutoDetect 设置为假可使用自定义代理设置。这将优先于其他代理设置。
代理用户

要用来向 ProxyServer 代理进行认证的用户名。

ProxyUser 和 ProxyPassword 选项被用来连接 ProxyServer 中指定的 HTTP 代理以及向其进行认证。

您可以在 ProxyAuthScheme 中选择可用的认证类型之一。如果您使用 HTTP 认证,请将此属性设置为 HTTP 代理所识别的用户的用户名。如果您使用 Windows 或 Kerberos 认证,请将此属性设置为采用下列格式之一的用户名:

  • 用户@域
  • 域\用户
john_doe@example.com
代理密码

要用来向 ProxyServer 代理进行认证的密码。

此属性被用来向支持 NTLM (Windows)、Kerberos 或 HTTP 认证的 HTTP 代理服务器进行认证。要指定 HTTP 代理,您可以设置 ProxyServer 和 ProxyPort。要指定认证类型,请设置 ProxyAuthScheme。

如果您使用 HTTP 认证,请另外将 ProxyUser 和 ProxyPassword 设置为 HTTP 代理。

如果您使用 NTLM 认证,请将 ProxyUser 和 ProxyPassword 设置为您的 Windows 密码。您还可能需要使用它们来完成 Kerberos 认证

 
代理服务器

要通过其路由 HTTP 流量的代理的主机名或 IP 地址。

要通过其路由 HTTP 流量的代理的主机名或 IP 地址。驱动程序可使用 HTTP、Windows (NTLM) 或 Kerberos 认证类型向 HTTP 代理进行认证。

默认情况下,驱动程序使用系统代理。如果您需要使用其他代理,请将 ProxyAutoDetect 设置为假。

206.174.193.115
代理端口 运行 ProxyServer 代理的 TCP 端口。 80
代理 SSL 类型

要在连接到 ProxyServer 代理时使用的 SSL 类型:

  • AUTO 如果 URL 是 HTTPS URL,则连接器将使用 TUNNEL 选项。如果 URL 是 HTTP URL,则连接器将使用 NEVER 选项(默认选项)
  • ALWAYS 连接始终支持 SSL
  • NEVER 连接不支持 SSL
  • TUNNEL 连接通过隧道代理完成:代理服务器打开到远程主机的连接,并且通过代理传输流量
AUTO

模拟用户账户

在 Exchange 中具有必要权限和 ApplicationImpersonation 角色的用户可以使用两种方式为其他用户读取邮箱数据:

  • 使用模拟类型模拟用户域配置连接
  • 在 SQL 模式下的 WHERE 子句中使用 ImpersonationUser 过滤器:
    SELECT * FROM "Exchange"."DRAFTS" "DRAFTS" WHERE ImpersonationUser='user@example.com'

检索消息体

默认情况下,仅当您从表中选择一个记录时,才会返回消息体。如果返回一个以上的记录,则此域被保留空白。

如果您想要用单个查询为一个以上的记录检索消息体,则必须在高级设置中设置包括内容选项。

说明

使用此连接器,您可以列出附件的文件名,但是您无法访问附件的内容。您只能访问消息体的内容。

返回消息体会耗费资源,并且为许多记录这样做会影响性能。如果您需要检查消息体,请尝试使用其他域来识别您想要详细分析的消息。然后,分别查询此消息子集,以便检查每个消息的消息体。

过滤限制

下列过滤器条件和域组合不受支持:

不受支持的运算符
所有日期时间域
  • 在 (=)
SenderName
  • 是 (=)
  • 以 (LIKE "%") 开头
  • 包含 (LIKE "%%")
SenderEmailAddress
FromName

数据连接器更新

当您升级 Analytics 或机器人代理时,应该使用一个 Analytics 数据连接器(ACCESSDATA 命令)测试用于导入数据的脚本。

由第三方数据源或 ODBC 驱动程序供应商进行的更改可能要求更新一个或多个数据连接器。脚本化数据连接可能需要更新以便继续正确工作。

  • 重新运行导入更新连接的最轻松方式是使用 Analytics 升级版本中的数据访问窗口手动执行导入。从日志复制 ACCESSDATA 命令并使用它更新您的脚本。

    说明

    在连接到数据源并重新运行导入之前,请清除连接器缓存以冲刷现有的表名称集。

    在数据访问窗口的现有连接选项卡中,在连接器名称旁边选择 > 清除缓存

  • 更新域规范您还可能需要更新脚本主体中的域规范以匹配数据源或 ODBC 驱动程序中的表架构更改。可能的更改包括域名称、域数据类型、域和记录长度。
  • 检查任何过滤的结果您还应该检查您在数据导入过程中应用的任何过滤的结果。您还应该检查您在数据导入过程中应用的任何过滤的结果。

Exchange 数据连接器更改

下面列出了对 Exchange 数据连接器进行的具体更改。

Analytics 版本 Exchange 表 更改

14.2

不适用

Exchange 架构在连接器中被从 Exchange 重命名为 EWS

ACCESSDATA 命令中需要的更新的示例:

  • SELECT * FROM "Exchange"."Calendar" "Calendar"
  • SELECT * FROM "EWS"."Calendar" "Calendar"

日历

被重命名的域:

  • Recurrence_DayOfWeek 被重命名为Recurrence_DaysOfWeek

被添加的域:

  • ModifiedOccurrences_Aggregate
  • DeletedOccurrences_Aggregate

被更改的数据类型:

  • Recurrence_StartDate 被从日期更改为日期时间
  • Recurrence_EndDate 被从日期更改为日期时间

Inbox 和 SentItems

被重命名的域:

  • ToRecipients_Name 被重命名为 ToRecipients_Names
  • ToRecipients_EmailAddress 被重命名为 ToRecipients_EmailAddresses
  • ToRecipients_ItemId 被重命名为 ToRecipients_ItemIds
  • CcRecipients_Name 被重命名为 CcRecipients_Names
  • CcRecipients_EmailAddress 被重命名为 CcRecipients_EmailAddresses
  • CcRecipients_ItemId 被重命名为 CcRecipients_ItemIds
  • BccRecipients_Name 被重命名为 BccRecipients_Names
  • BccRecipients_EmailAddress 被重命名为 BccRecipients_EmailAddresses
  • BccRecipients_ItemId 被重命名为 BccRecipients_ItemIds

任务

被重命名的域:

  • Recurrence_NumberOfOccurences 被重命名为 Recurrence_NumberOfOccurrences