Поделиться через


Протокол доставки SMTP

Изменения: 14 апреля 2006 г.

При помощи протокола доставки SMTP создаются сообщения об уведомлениях и задаются их маршруты для доставки службой SMTP, например, предоставляемой службами Exchange Microsoft и IIS. При необходимости использовать протокол доставки SMTP для отправки уведомлений определенного класса, нужно определить протокол доставки SMTP как часть класса уведомлений в определении приложения.

ms172485.note(ru-ru,SQL.90).gifВажно!
Служба SMTP необходима для использования протокола доставки SMTP, но она не устанавливается вместе с Windows Vista. Чтобы использовать протокол доставки SMTP в Windows Vista, необходимо отдельно установить службу SMTP.

Определение протокола доставки SMTP

Определение протокола состоит из имени и значений для всех пользовательских полей. Протокол доставки SMTP использует следующие значения и поля:

  • Значение ProtocolName (обязательное) должно быть установлено в SMTP.
  • Для протокола доставки определите следующие поля в указанном порядке:
    • Поле Тема (обязательное) — определяет выражение, представляющее строку темы, которая отображается в сообщении электронной почты.
    • Поле От (обязательное) — определяет адрес электронной почты, с которого отсылается сообщение.
    • Поле Кому (обязательное) — определяет адрес целевого устройства. Это поле должно оставаться пустым для класса уведомлений, предназначенного для многоадресных уведомлений.
    • Поле Приоритет (необязательное) — определяет важность сообщения электронной почты. Для Microsoft Exchange доступны значения «Низкая», «Обычная» или «Высокая». По умолчанию важность уведомления — «Обычная».
    • Поле Формат (необязательное) — имеет значение «Обычный текст» или «html» в зависимости от того, какой формат предусматривает для данных уведомления модуль форматирования данных. По умолчанию формат уведомлений текстовый.

В синтаксисе языка Transact-SQL строка с константами должна заключаться в кавычки. Поэтому, если в поле протокола доставки используется строка, то необходимо заключить ее в одинарные кавычки, например 'myString'. Если строка имеет формат Юникода, то добавьте букву 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:

  • Поле Тема использует сочетание строк и ссылок на поля уведомлений (StockSymbol и StockPrice) для настройки строки темы в каждом уведомлении.
  • Поле Кому получает свое значение из поля DeviceAddress для устройства подписчика. Список доступных полей см. в разделе SqlExpression Element for Protocol/Fields/Field (ADF).
  • Поля От, Приоритет и BodyFormat — это строки, которые одинаковы для всех уведомлений, которые отправляются при помощи протокола доставки.

Поля также могут получать свои значения непосредственно из полей уведомлений. Дополнительные сведения см. в разделе FieldReference Element (ADF).

Определение канала доставки для протокола доставки SMTP

Чтобы использовать протокол доставки SMTP для распространения уведомлений, необходимо определить канал доставки, который использует протокол доставки SMTP. Один канал доставки SMTP может использоваться несколькими классами уведомлений различных приложений.

ms172485.note(ru-ru,SQL.90).gifВажно!
В связи с особенностями реализации протокола SMTP, используемой на платформе Microsoft .NET Framework, можно определить только один канал доставки SMTP для экземпляра. При определении двух каналов доставки SMTP уведомления могут отправляться неправильным SMTP-серверам.

Дополнительные сведения см. в разделе Определение канала доставки SMTP.

См. также

Основные понятия

Протокол доставки File
Разработка пользовательского протокола доставки

Другие ресурсы

Настройка протоколов доставки
Определение классов уведомлений
Protocol Element (ADF)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Новое содержимое:
  • Добавлено примечание о том, что служба SMTP не устанавливается вместе с Windows Vista.
  • Добавлено описание образца кода.