SMTP 傳遞通訊協定

更新: 2006 年 4 月 14 日

Simple Mail Transfer Protocol (SMTP) 傳遞通訊協定建立及路由通知訊息供 SMTP 服務傳遞,例如 Microsoft Exchange 所提供的服務。如果您要使用 SMTP 傳遞通訊協定從特殊的通知類別傳遞通知,要將 SMTP 傳遞通訊協定定義成應用程式定義中通知類別的一部分。

ms172485.note(zh-tw,SQL.90).gif重要事項:
使用 SMTP 傳遞通訊協定必須有 SMTP 服務,但是這項服務並不會隨 Windows Vista 安裝。您必須另外安裝 SMTP 服務,才能在 Windows Vista 上使用 SMTP 傳遞通訊協定。

定義 SMTP 傳遞通訊協定

通訊協定定義由所有自定欄位的名稱和值組成。SMTP 傳遞通訊協定使用下列的值和欄位:

  • ProtocolName 值 (必要的) 必須是 SMTP。
  • 依下列順序為傳遞通訊協定定義下列欄位:
    • Subject (必要的) 指定代表電子郵件主旨的運算式。
    • From (必要的) 指定要顯示在電子郵件中的傳送電子郵件地址。
    • To (必要的) 必須指定目標裝置的地址。若為提供多重傳遞通知的通知類別,則這個欄位必須空白。
    • Priority (選擇性) 指定電子郵件訊息優先權。若為 Microsoft Exchange,可用的值為「低」、「一般」或「高」。如果未指定其他值,則通知優先權預設值是「一般」。
    • BodyFormat (選擇性) 視內容格式器提供的通知資料的預定格式而定,使用 "text" 或 "html" 作為它的值。如果未指定任何一值,則通知格式預設值是 text。

在 Transact-SQL 與法中,字串常數必須包含在引號中。因此,如果您在傳遞通訊協定欄位中使用字串,必須用單引號括住它,例如 'myString'。如果字串為 Unicode,則還必須在字串之前加上 N,例如 N'myString'。

SMTP 傳遞通訊協定的範例定義

下列範例示範如何為通知類別定義 SMTP 傳遞通訊協定:

<Protocols>
    <Protocol>
        <ProtocolName>SMTP</ProtocolName>
        <Fields>
            <Field>
                <FieldName>Subject</FieldName>
                <SqlExpression>
                'The price of ' + StockSymbol
                + ' is now ' + StockPrice
                </SqlExpression>
            </Field>
            <Field>
                <FieldName>From</FieldName>
                <SqlExpression>
                N'stockquotes@microsoft.com'
                </SqlExpression>
            </Field>
            <Field>
                <FieldName>To</FieldName>
                <SqlExpression>DeviceAddress</SqlExpression>
            </Field>
            <Field>
                <FieldName>Priority</FieldName>
                <SqlExpression>N'Normal'</SqlExpression>
            </Field>
            <Field>
                <FieldName>BodyFormat</FieldName>
                <SqlExpression>N'html'</SqlExpression>
            </Field>
            <Field>
        </Fields>
        <ProtocolExecutionSettings>
            ...
        </ProtocolExecutionSettings>
    </Protocol>
</Protocols>

這個範例中所有的欄位都使用 Transact-SQL 運算式來取得值:

  • [主旨] 欄位使用組合字串,通知欄位參考 (StockSymbolStockPrice) 自訂每個通知的主旨行。
  • [收件者] 欄位從訂閱者裝置的 DeviceAddress 欄位取得值。如需可用欄位的清單,請參閱<SqlExpression Element for Protocol/Fields/Field (ADF)>。
  • [寄件者][優先權][BodyFormat] 欄位是字串,使用傳遞通訊協定的所有通知的這些欄位都一樣。

欄位也可以直接從通知欄位取得其值。如需詳細資訊,請參閱<FieldReference Element (ADF)>。

定義 SMTP 傳遞通訊協定的傳遞通道

您還必須定義使用 SMTP 傳遞通訊協定的傳遞通道,才能使用 SMTP 傳遞通訊協定來散發通知。多個應用程式的多個通知類別可使用相同 SMTP 傳遞通道。

ms172485.note(zh-tw,SQL.90).gif重要事項:
因為 Microsoft .NET Framework 使用 SMTP 實作的緣故,一個執行個體只能定義一個使用 SMTP 傳遞通訊協定的傳遞通道。如果您定義兩個 SMTP 傳遞通道,通知可能傳送到錯誤的 SMTP 伺服器。

如需詳細資訊,請參閱<定義 SMTP 傳遞通道>。

請參閱

概念

File 傳遞通訊協定
部署自訂傳遞通訊協定

其他資源

設定傳遞通訊協定
定義通知類別
Protocol Element (ADF)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容:
  • 新增關於 SMTP 服務並未隨 Windows Vista 安裝的注意事項。
  • 新增範例程式碼的說明。