次の方法で共有


SMTP 配信プロトコル

更新 : 2006 年 4 月 14 日

SMTP (Simple Mail Transfer Protocol) 配信プロトコルは、Microsoft Exchange やインターネット インフォメーション サービスで提供されるような、SMTP サービスで配信される通知メッセージを作成および送信します。SMTP 配信プロトコルを使用して特定の通知クラスからの通知を配信するには、アプリケーション定義で通知クラスの 1 つとして SMTP 配信プロトコルを定義します。

ms172485.note(ja-jp,SQL.90).gif重要 :
SMTP 配信プロトコルを使用するには SMTP サービスが必要ですが、これは Windows Vista ではインストールされません。Windows Vista で SMTP 配信プロトコルを使用するには、SMTP サービスを単独でインストールする必要があります。

SMTP 配信プロトコルの定義

プロトコルの定義では、すべてのカスタム フィールドの名前と値を指定します。SMTP 配信プロトコルでは、次に示す値とフィールドを使用します。

  • ProtocolName 値 (必須) は、SMTP にする必要があります。
  • 配信プロトコルの次のフィールドを、この順序で定義します。
    • Subject (必須) には、電子メールに表示される件名の行を表す式を指定します。
    • From (必須) には、電子メールに表示される送信元の電子メール アドレスを指定します。
    • To (必須) には、送信先デバイスのアドレスを指定する必要があります。このフィールドは、マルチキャスト通知を提供する通知クラスでは空白にする必要があります。
    • Priority (省略可能) には、電子メール メッセージの優先度を指定します。Microsoft Exchange の場合、使用できる値は、Low、Normal、または High です。その他の値が指定された場合、通知の優先順位は既定で Normal となります。
    • BodyFormat (省略可能) は、コンテンツ フォーマッタによって指定される通知データのフォーマットによって、"text" か "html" のいずれかの値を取ります。値が指定されない場合、通知フォーマットは既定で text となります。

Transact-SQL 構文では、文字列定数を引用符で囲む必要があります。したがって、配信プロトコル フィールドに文字列を指定する場合には、たとえば 'myString' のように、単一引用符で囲む必要があります。また文字列が Unicode の場合には、たとえば N'myString' のように、文字列の前に N を追加する必要があります。

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 式を使用してそれぞれの値を取得します。

  • Subject フィールドでは、文字列と通知フィールド参照を組み合わせることで (StockSymbolStockPrice)、それぞれの通知の件名の行をカスタマイズしています。
  • To フィールドでは、サブスクライバ デバイスの DeviceAddress フィールドから値を取得しています。使用できるフィールドについては、「Protocol/Fields/Field の SqlExpression 要素 (ADF)」を参照してください。
  • FromPriorityBodyFormat の各フィールドについては、この配信プロトコルを使って送信されるすべての通知で同じ文字列を使用します。

フィールドでは、通知フィールドから直接値を取得することもできます。詳細については、「FieldReference 要素 (ADF)」を参照してください。

SMTP 配信プロトコルの配信チャネルの定義

SMTP 配信プロトコルを使用して通知を配信するには、SMTP 配信プロトコルを使用する配信チャネルを定義する必要があります。複数のアプリケーションの複数の通知クラスが、同じ SMTP 配信チャネルを使用できます。

ms172485.note(ja-jp,SQL.90).gif重要 :
SMTP 実装は Microsoft .NET Framework によって使用されているため、SMTP 配信プロトコルを使用する配信チャネルは、1 インスタンスにつき 1 つのみ定義できます。SMTP 配信チャネルを 2 つ定義すると、間違った SMTP サーバーに通知が送信されることがあります。

詳細については、「SMTP 配信チャネルの定義」を参照してください。

参照

概念

File 配信プロトコル
カスタム配信プロトコルの開発

その他の技術情報

配信プロトコルの構成
通知クラスの定義
Protocol 要素 (ADF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • Windows Vista では SMTP サービスがインストールされないことに関する注意が追加されました。
  • サンプル コードの説明が追加されました。