可以通过编程方式或使用 BizTalk Server 管理控制台配置 SMTP 发送端口。
如何以编程方式配置 SMTP 发送端口
SMTP 适配器将其配置信息存储在 BizTalk 管理数据库中(也称为配置数据库)。 配置信息存储在自定义 XML 属性包中。 在 SMTP 适配器初始化及其运行时,服务器会将配置传递给适配器,如下所示:
对于 SMTP 发送处理程序,配置信息通过调用 IPersistPropertyBag 接口的 Load 方法传递给适配器。
对于 SMTP 发送适配器,配置信息作为消息上下文中的一组属性传递给适配器。 SMTP 命名空间将这些属性组合在一起。
BizTalk 资源管理器对象模型公开发送端口的 ITransportInfo 适配器配置接口,其中包含 TransportTypeData 读/写属性。 此属性接受作为名称/值对的 XML 字符串的 SMTP 发送端口配置属性包。 请注意,若要在 BizTalk Explorer 对象模型中设置此属性,必须先在 ITransportInfo 接口的 Address 属性上设置此属性。
不需要设置 ITransportInfo 接口的 TransportTypeData 属性。 如果未设置,SMTP 发送端口将使用 SMTP 发送处理程序的默认值。 SMTP 发送端口特定的属性在 SMTP 发送适配器属性架构bts_smtp_properties.xsd 中定义。
如果未定义复制发送处理程序配置属性的属性,则使用处理程序的配置属性。 如果未定义所需的属性,则使用默认值。 如果未定义默认值,SMTP 发送处理程序会在事件日志中记录错误,并将消息移动到备份适配器。
可以在消息上下文上以编程方式设置这些属性。 可以在 BizTalk 业务流程计划或自定义管道组件中设置这些属性。 使用这些属性时,适用以下规则:
如果该属性是在业务流程中或在接收管道中的自定义管道组件中设置的,则:
如果将消息发送到静态发送端口,则会使用为该发送端口配置的值覆盖属性值。
如果消息被发送到动态发送端口,属性值将不会被覆盖。
如果在发送管道的自定义管道组件中设置该属性,则:
- 无论消息是发送到静态还是动态发送端口,都不会覆盖该值。
下表列出了可以在 SMTP 发送位置的 BizTalk 资源管理器对象模型中设置的配置属性。
| 属性名称 | 类型 | DESCRIPTION | 限制 | 注释 |
|---|---|---|---|---|
| SMTPHost | xs:string | 用于发送邮件的 SMTP 服务器。 | 最大长度:256 | 默认值:空。 默认值指示 SMTP 发送端口将使用处理程序的配置值。 |
| 来自 | xs:string | SMTP 发送端口放置在 SMTP 发件人 标头上的电子邮件地址。 | 最大长度:256 | 默认值:空。 默认值指示 SMTP 发送端口将使用处理程序的配置值。 |
| CC | xs:string | 将发送邮件副本的电子邮件地址。 | 最大长度:1024 | 默认值:空 可以列出多个电子邮件地址。 |
| 主题 | xs:string | 邮件的主题标头。 | 最小长度:0 最大长度:256 |
默认值:%MessageID%。 |
| SMTPAuthenticate | xs:int | 要使用的身份验证类型。 | 没有 | 有效值: - 0 - 无身份验证 - 1 - 基本身份验证 - 2 - 进程帐户 (NTLM) 默认值指示 SMTP 发送端口将使用处理程序的配置值。 若要应用默认值,在设置 TransportTypeData 属性时,请从属性包中省略此属性。 |
| UserName | xs:string | 用于对 SMTP 服务器进行身份验证的用户名。 | 最小长度:0 最大长度:256 |
默认值:空 如果 SMTPAuthenticate 等于 1(基本身份验证),则需要一个值。 |
| 密码 | xs:string | 使用 SMTP 服务器进行身份验证的用户密码。 | 最小长度:0 最大长度:256 |
默认值:空 如果 SMTPAuthenticate 等于 1(基本身份验证),则需要一个值。 |
| ReadReceipt | xs:boolean | 请求从此发送端口接收消息的已读回执。 | 没有 | 默认值:False |
| DeliveryReceipt | xs:boolean | 从此发送端口请求消息传递回执。 | 没有 | 默认值:False |
| EmailBodyText | xs:string | 指定要用于所发送电子邮件正文的文本。 | 最大长度:64 kb | 默认值:空 |
| EmailBodyTextCharset | xs:string | 指定用于编码使用 EmailBodyText 选项时要发送的电子邮件正文的字符集。 SMTP 适配器会将 EmailBodyText 转换为 EmailBodyTextCharset 指定的字符集。 | 没有 | 默认值:无。 必须显式将值(例如)设置为 UTF-8。 如果未设置值,可能会看到本主题末尾显示的错误。 |
| 电子邮件正文文件 | xs:string | 指定将使用文件的内容作为要发送电子邮件的正文,并给出文件的完整路径。 此路径必须在运行时访问 SMTP 适配器的主机。 | 最大路径长度:256 个字符 | 默认值:空 |
| EmailBodyFileCharset | xs:string | 指定字符集,以便在设置 EmailBodyFile 属性时用于对要发送的电子邮件的正文进行编码。 SMTP 适配器不会对文件执行任何转换;该文件必须已在此字符集中进行编码。 如果文件具有字节Order-Mark (BOM),SMTP 适配器将删除它。 | 没有 | 默认值:UTF-8 (65001) |
| 附件 | xs:string | 指定将文件或文件附加到电子邮件以及文件或文件的完整路径。 指定的路径必须在运行时对 SMTP 适配器的主机可访问。 | 最大路径长度:256 个字符 | 默认值:空 |
| 消息部分附件 | xs:int | 指定如何将 BizTalk 消息部件附加到电子邮件中 | 没有 | 有效值: - 0 - 不会将 BizTalk 消息部件用作附件。 - 1 - BizTalk 邮件正文部件作为电子邮件附件发送。 在这种情况下,应指定 EmailBodyFile 或 EmailBodyText 属性。 如果未指定这两个属性,BizTalk 消息正文部分将作为电子邮件正文而不是附件发送。 - 2 - 所有部件都作为附件发送。 但是,如果未指定 EmailBodyText 或 EmailBodyFile ,则 BizTalk 邮件正文部件将作为电子邮件正文发送,而其他部分将作为附件发送。 默认值:0 |
| ReplyBy | xs:dateTime | 使用指定的值填充传出邮件中的 Reply-By 标头字段。 | 无法在发送端口属性页上设置此属性。 此属性可以通过管道或编排来设置。 | 默认值:空 |
以下代码显示用于设置这些属性的 XML 字符串的格式:
<CustomProps>
<DeliveryReceipt vt="11">-1</DeliveryReceipt
<SMTPHost vt="8">sfdsadf</SMTPHost>
<Subject vt="8">Some subject</Subject>
<From vt="8">username@domain.com</From>
<SMTPAuthenticate vt="19">2</SMTPAuthenticate>
<ReadReceipt vt="11">-1</ReadReceipt>
</CustomProps>
如何使用 BizTalk Server 管理控制台配置 SMTP 发送端口
可以在 BizTalk Server 管理控制台中设置 SMTP 发送端口适配器变量。 如果未为发送端口设置属性,将使用 BizTalk Server 管理控制台中设置的默认发送处理程序值。
若要使用 BizTalk Server 管理控制台配置 SMTP 发送端口,请使用以下过程。
为 SMTP 发送端口配置变量
在 BizTalk Server 管理控制台中,创建新的发送端口,或双击现有发送端口对其进行修改。 有关详细信息,请参阅 如何创建发送端口。 配置所有发送端口选项,并为“常规”选项卡的“传输”部分中的“类型”选项指定 SMTP。
在“ 常规 ”选项卡上的“ 传输 ”部分中,单击“ 类型”旁边的“ 配置”。
在 “SMTP 传输属性 ”对话框中的“ 常规 ”选项卡上,执行以下作:
用这个 要执行的操作 至 必填。 指定用于发送邮件的位置的电子邮件地址。
可以指定多个地址。
最大长度:256
有关此属性的详细信息,请参阅 SMTP To 属性的限制。CC 指定要抄送邮件的电子邮件地址。
可以指定多个地址。
最大长度:1024主题 指定邮件的主题标头。
最小长度:0
最大长度:256通知 指定通知回执的类型。 可以选择一种或两种类型的收据。 通知回执类型为:
- 已读回执。 阅读邮件时,将发送确认电子邮件。
- 送达收据。 邮件送达时,将发送确认电子邮件。在 SMTP 传输属性 对话框中的 撰写 选项卡上,执行以下步骤:
用这个 要执行的操作 BizTalk 消息正文部件 指定将 BizTalk 邮件正文部分用于要发送的电子邮件的正文。 文字 指定要用于所发送电子邮件正文的文本。 选择“ 文本 ”选项后,可以将电子邮件正文的文本输入到文本框中。
最大长度: 64Kb文本的字符集 - 指定要用于对要发送的电子邮件正文进行编码的字符集。 仅当选择了 “文本 ”选项时,此选项才可用。
- 默认值: UTF-8 (65001)文件 指定文件的内容将用于要发送的电子邮件的正文,并指定文件的路径。 选择 “文件 ”选项后,可以单击省略号(...)按钮浏览到该文件。
最大路径长度:256 个字符 注意: 建议在文件共享上指定一个路径,该路径可从 BizTalk Server 组中的所有 BizTalk 服务器访问以用于生产环境。文件的字符集 指定要发送的文件的字符集编码。 注意: SMTP 适配器不对文件应用指定的编码。 此选项仅用于指定正在发送的文件的编码方式。
仅当选择了 “文件” 选项时,此选项才可用。
默认值:UTF-8 (65001)在 “SMTP 传输属性 ”对话框中的 “附件 ”选项卡上,执行以下作:
用这个 要执行的操作 剩余 BizTalk 消息部分 指定如何将 BizTalk 消息部件关联到电子邮件。
选项:
- 不要附加部件
- 仅附加主体部分
- 附加所有部件
默认值:不附加部件。添加 指定要附加到电子邮件的文件或文件。 单击“ 添加” 后,可以浏览以选择文件并将其添加到要附加的文件列表中。
最大路径长度:256 个字符 注意: 建议在文件共享上指定一个路径,该路径可从 BizTalk Server 组中的所有 BizTalk 服务器访问以用于生产环境。删除 从要附加到电子邮件的文件列表中删除所选文件。 在“SMTP 传输属性”对话框中的“处理程序替代”选项卡上,执行以下操作:
用这个 要执行的操作 SMTP 服务器名称 指定要在发送邮件时使用的 SMTP 服务器的名称。
最大长度:256 注意: 发送端口或接收位置的 URI 不能超过 256 个字符。发件人(电子邮件地址) 指定要放置在 SMTP 发件人 标头上的电子邮件地址。
最大长度:256身份验证类型 指定要用于 SMTP 服务器的身份验证类型。
选项:
- (默认值)
- 无身份验证
- 基本身份验证
- 进程账户(NTLM)
默认值指示 SMTP 发送端口将使用发送处理程序中指定的配置值。用户名 指定要用于通过 SMTP 服务器进行身份验证的用户名。
如果 身份验证类型 为 基本身份验证,则此属性需要一个值。
最小长度:0
最大长度:256密码 指定要用于与 SMTP 服务器进行身份验证的密码。
如果 身份验证类型 为 基本身份验证,则此属性需要一个值。
最小长度:0
最大长度:256单击“确定”,然后再次单击“确定”以保存设置。