SQL пошти забезпечує легкий спосіб надсилати та читати сповіщення електронною поштою від
Microsoft SQL Server. Однак, оскільки SQL пошти MAPI застосунку, MAPI
підсистема повинні бути присутніми на сервері. Установлює Microsoft Windows NT 4.0 на
Підсистема MAPI під Вільний час інсталяції Windows обміну повідомленнями. Проте, Microsoft Windows
2000 не надає підсистемою MAPI. Отже, якщо ви хочете використовувати SQL пошти,
потрібно інсталювати клієнт MAPI, як Microsoft Outlook.
Ви можете використовувати
інші методи, щоб відправити простий поштовий переказ протоколу SMTP електронна пошта безпосередньо з
SQL Server. Наприклад, можна використовувати інтерфейс CDO для NT Server
(CDONTS) або співпраці даних об'єктів для Windows 2000 (CDOSYS) в поєднанні
з sp_OA SQL сервера автоматизації OLE збережена процедура. У цій статті
містить приклади сценарій виконання цих методів для надсилання електронна пошта Інтернет
поштовий сервер. Ви можете змінити методи, так що вони будуть надати більш
надійна поштової системи. Наприклад, потрібно додати код обробки помилок.
Методи в прикладах не є засобом для читання або для
Обробка електронна пошта.
Примітка CDOSYS доступна, починаючи з Windows 2000, і ми рекомендуємо
використовувати CDOSYS замість CDONTS. CDONTS не підтримується у Windows
Сервер 2003 та пізніших операційних системний інтегратор.
Примітка Ці приклади програмування проілюструвати методів, які можна використовувати
для виклику об'єктної моделі CDO в Transact-SQL. Ви несете відповідальність за будь-які
програмування розширень до прикладів, або за будь-який стрес приймальні випробування, тобто
потрібно для запуску коду у виробництво
середовище.
корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації
без гарантій, виражених або маються на увазі. Це включає, але не обмежена
Щоб, можливі гарантії товарної придатності або придатності для конкретної
мета. Ця стаття передбачає, що ви знайомі з програмування
мови, що були продемонстровані та інструменти, які використовуються для створення
і налагодження процедур. Співробітники представник служби підтримки клієнтів корпорації Майкрософт можуть пояснити з
можливості конкретної процедури, але вони не будуть змінювати дані
Приклади для реалізації додаткових можливостей або створювати процедури на вимогу ваших
особливі вимоги.
Як використовувати CDO для сервера Microsoft Windows NT (CDONTS)
CDONTS це простий поштовий переказ протоколу SMTP певної OLE
сервер, який спеціально призначений для забезпечення обміну повідомленнями функціональність до
Веб-додатків. Таким чином, CDONTS підтримує надсилання електронна пошта на основі HTML.
MAPI-додатків, як SQL-Mail, не роблять. за промовчанням Microsoft Інтернет
Відомості про сервер IIS 4.0 або пізнішої версії, встановлює CDONTS. за промовчанням Microsoft
Windows 2000 установка Microsoft Internet Information Server (IIS)
5.0.
Для отримання додаткових відомостей про CDONTS, натисніть на
Номер статті для перегляду статті в базі знань Microsoft Knowledge Base:
CDONTS відправляє електронну пошту через SMTP в місцевих
сервер. Якщо у вас немає SMTP-сервера на ваш локальний сервер, ви можете використовувати в
Віртуальний сервер SMTP, який встановлює IIS для маршрутизації електронна пошта SMTP, щоб в
відповідні поштовий SMTP-сервер. Використовувати CDONTS для надсилання електронна пошта від SQL Server,
виконайте такі дії:
Інсталяція служб IIS і вона працює на комп'ютері, який є
запущено SQL Server.
Вкажіть ваш поштовий SMTP-сервер як ваш "смарт-хоста" так що
служби IIS SMTP автоматично переспрямовує будь-якої електронна пошта SMTP, що надсилається до вашого
локальний сервер до поштового сервера SMTP для доставки.
Створення збереженої процедури в SQL Server, які можна використовувати для
Надіслати сповіщення електронною поштою.
Під Вільний час сценарій виконання CDONTS замість SQL пошти, ви не повинні
мати поштовий клієнт, як Microsoft Outlook інстальовано на комп’ютер-зразок, який
запущено SQL Server. Ви також не повинні мати Microsoft Exchange server.
Ви можете використовувати будь-який поштовий сервер, що підтримує електронна пошта SMTP як ваш «смарт-хоста».
Однак, ви не можете читати і обробки електронна пошта, яке надсилається до комп'ютера,
запущено SQL Server за допомогою CDONTS. Ви також не можна замінити на
функціональність SQL агента пошти.
Інструкції, які слідують покладатися
за Microsoft Windows 2000. Якщо на комп'ютері інстальовано IIS 4.0, ви можете
Аналогічним чином налаштувати Microsoft Windows NT 4.0. Проте кроки будуть відрізнятися
злегка.
Для отримання додаткових відомостей про те, як
Настроювання "смарт-хоста" Microsoft Windows NT 4.0, натисніть кнопку нижче
Номер статті для перегляду статті в базі знань Microsoft Knowledge Base:
Налаштування служби IIS SMTP для ретрансляції SMTP-пошти
Настроювання проміжного вузла
Натисніть кнопку Пуск, виберіть пункт програми, пункт Адмініструванняа потім Виберіть пункт Диспетчер служб Інтернету , відкрити диспетчер IIS.
Відкрити дерево для вашого сервера. Клацніть правою кнопкою миші за промовчанням віртуального сервера SMTPі виберіть пункт Властивості.
Знайдіть вкладку доставки і натисніть кнопку Додатково.
Введіть ім'я сервера SMTP-пошти в текстовому полі Смарт-хоста . Якщо ви не знаєте ім'я сервера SMTP-пошти
адміністратора пошти.
Переконайтеся, що на простий пошти міграції даних протоколу SMTP
службу запущено. Служби SMTP є частиною служби IIS Admin.
Таким чином, служби IIS Admin також має бути запущено.
Створення збереженої процедури для відправки електронна пошта CDONTS
Примітка Приклад компаній, організацій, виробів, доменних імен,
адреси електронна пошта, логотипи, люди, місця та події, наведені в цій статті
вигадані. Не пов'язані з будь-якої реальної компанії, організації, продукт,
ім'я домену, адресу електронна пошта, логотип, особи, місця або події призначений або
слід розглядати як випадкову.
Ви можете використовувати код, подібне до нижченаведеного.
Створення збереженої процедури в базі даних, який надсилає сповіщення електронною поштою за допомогою SQL Server
OLE автоматизації збережена процедура для виклику об'єктної моделі CDONTS.
Далі, за допомогою збереженої процедури, які ви створили та надати в
правильні параметри:
exec sp_send_cdontsmail 'someone@example.com','someone2@example.com','Test of CDONTS','It works'
Примітка Тільки члени фіксованого серверну роль " системний адміністратор " можна запустити OLE автоматизації збережених процедур.
Якщо SQL Server користувача не є членом фіксованого серверну роль " системний адміністратор ", неможливо використовувати збережену процедуру, яка є
згадується в приклад для надсилання електронна пошта. У такій ситуації можливо, доведеться
розробити клієнтського застосунку для надсилання електронна пошта з CDONTS. Наприклад, ви можете
за допомогою застосунку Microsoft Visual Basic.
CDONTS посилає сповіщення електронною поштою
місцеві віртуальним сервером SMTP. Сервер потім направляє сповіщення електронною поштою SMTP
поштовий сервер, вказаний у полі Смарт-хоста . Поштовий SMTP-сервер надсилає пошту до сповіщення електронною поштою
адресу, вказану в на до: аргументу ("someone2@example.com" в прикладі). Назва що
Указаний в на з: аргумент відображається як відправника сповіщення електронною поштою
("someone@example.com" в цьому прикладі) з темою "Випробування CDONTS" та
протокол IMAP "це працює" в тексті сповіщення електронною поштою. Ніхто не буде скопійовано на за
електронна пошта, тому що ви не надав аргумент для CC або для поля ПК ».
Ви можете змінити приклад, так що вона буде відправити
На основі HTML електронна пошта або вкладення. Документація про CDONTS, відвідайте на
веб-вузлі Майкрософт:
У лівій області розгорніть обміну повідомленнями та спільної роботи, інтерфейс CDO, послідовно розгорніть вузли та CDO 1.2.1.
Ви можете знайти документацію з SQL сервера OLE
Автоматизація збережена процедура в SQL Server 2000 книг онлайн.
Як використовувати CDO для Microsoft Windows 2000 (CDOSYS)
CDOSYS надає об'єктної моделі для розробки обміну повідомленнями
застосунки Microsoft Windows 2000. Вона також забезпечує розширеною функціональністю
більш наявної бібліотеки CDO для Windows NT Server (CDONTS). Вимагає CDOSYS
Windows 2000 і локальний або віддалений сервер SMTP.
Ви можете налаштувати
CDOSYS вказує на серверів SMTP програмним способом для розробників і дають гнучкість
конфігурування серверів SMTP.
Для
Додаткові відомості про CDOSYS, клацніть цей номер статті, щоб переглянути на
статті в базі знань Microsoft Knowledge Base:
Відносини між 1. x CDO бібліотек і CDOSYS.БІБЛІОТЕКА DLL
Оскільки CDOSYS можна надсилати сповіщення електронною поштою до віддаленого SMTP
сервер, CDOSYS не передбачає наявність Інтернету відомості про сервер
встановлена і запущена на комп'ютері, який працює SQL Server. Ви також зробити
налаштовувати віртуального сервера SMTP. Все, що вам потрібно зробити, це створити
Збережена процедура в SQL Server, які можна використовувати для надсилання електронна пошта.
Під Вільний час сценарій виконання CDOSYS замість SQL Mail, не потрібно мати поштового клієнта
як Microsoft Outlook інстальовано на комп'ютері, на якому запущено SQL Server.
Ви також не повинні мати сервера Exchange. Ви можете використовувати будь-який сервер пошти
як ваш віддалений поштовий SMTP-сервер, який підтримує протокол IMAP за протоколом SMTP. Однак, ви не можете
прочитати або обробити сповіщення електронною поштою, що надсилається до SQL Server, якщо ви використовуєте CDOSYS. Ви також
не вдалося замінити функціональність SQL агента пошти.
сценарій виконання CDOSYS
з SQL сервера OLE автоматизації об'єктів спирається на SQL сервера автоматизації OLE
для виклику об'єктної моделі CDOSYS. Це була протестована з SQL Server 2000 номерів
Pack 1 (SP1) і SQL Server 2000 пакет оновлень 2 (SP2). Microsoft не робить
гарантувати, що CDOSYS може бути викликаний з автоматизації OLE збережених процедур
на версії SQL Server, які були випущені раніше SQL Server 2000 із.
Створення збереженої процедури для надсилання пошти CDOSYS
Ви можете використовувати код, подібне до наведеного, щоб створити на
Збережена процедура у вашому
бази даних, який надсилає сповіщення електронною поштою за допомогою в SQL сервера автоматизації OLE
збережена процедура для виклику об'єктної моделі CDOSYS.
У цьому прикладі ми надаємо додатковий ступінь помилка
Обробка перевірити hresult кожного EXEC sp_OA * заяву. Якщо hresult (@hr) дорівнює нулю, попередній sp_OA * заява була успішною. Однак, якщо що hresult є ненульовим, помилка попереднього sp_OA * заяву.
Кожен ненульовий hresult невдач на
рядок вставляється в таблиці [dbo].[cdosysmail_failures] що відзначає, місце і
Вільний час провал. Крім того, Остання помилка інтерпретується за допомогою sp_OAGetErrorInfo збережена процедура для звіту джерело та опис помилки. Цю помилку
Опис друкується підключення до клієнта. Також цей опис помилки,
Вільний час і місце відмови вставляються в таблицю
[dbo].[cdosysmail_failures] в базі даних, так що ви можете визначити і
Діагностика помилки після доконаного факту.
Якщо не вдається sp_OAGetErrorInfo збережена процедура, сама, приклад друкує таке протокол IMAP про помилку
для підключення до клієнта:
sp_OAGetErrorInfo
не вдалося виконати
-- drop old cdosysmail_failures table if exists
IF (EXISTS (SELECT * FROM dbo.sysobjects WHERE name = N'cdosysmail_failures' AND type='U')) DROP TABLE [dbo].[cdosysmail_failures]
GO
-- Create new cdosysmail_failures table
CREATE TABLE [dbo].[cdosysmail_failures]
([Date of Failure] datetime,
[Spid] int NULL,
[From] varchar(100) NULL,
[To] varchar(100) NULL,
[Subject] varchar(100) NULL,
[Body] varchar(4000) NULL,
[iMsg] int NULL,
[Hr] int NULL,
[Source of Failure] varchar(255) NULL,
[Description of Failure] varchar(500) NULL,
[Output from Failure] varchar(1000) NULL,
[Comment about Failure] varchar(50) NULL)
GO
IF (EXISTS (SELECT * FROM dbo.sysobjects WHERE name = N'sp_send_cdosysmail' AND type='P')) DROP PROCEDURE [dbo].[sp_send_cdosysmail]
GO
CREATE PROCEDURE [dbo].[sp_send_cdosysmail]
@From varchar(100) ,
@To varchar(100) ,
@Subject varchar(100)=" ",
@Body varchar(4000) =" "
/*********************************************************************
This stored procedure takes the parameters and sends an e-mail.
All the mail configurations are hard-coded in the stored procedure.
Comments are added to the stored procedure where necessary.
References to the CDOSYS objects are at the following MSDN Web site:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_messaging.asp
***********************************************************************/
AS
Declare @iMsg int
Declare @hr int
Declare @source varchar(255)
Declare @description varchar(500)
Declare @output varchar(1000)
--************* Create the CDO.Message Object ************************
EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OACreate')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OACreate')
RETURN
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END
--***************Configuring the Message Object ******************
-- This is to configure a remote SMTP server.
-- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_sendusing.asp
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty sendusing')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty sendusing')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
-- This is to configure the Server Name or IP address.
-- Replace MailServerName by the name or IP of your SMTP Server.
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', cdoSMTPServerName
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty smtpserver')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty smtpserver')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
-- Save the configurations to the message object.
EXEC @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty Update')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty Update')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
-- Set the e-mail parameters.
EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty To')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty To')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty From')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty From')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty Subject')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty Subject')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
-- If you are using HTML e-mail, use 'HTMLBody' instead of 'TextBody'.
EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OASetProperty TextBody')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OASetProperty TextBody')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL
IF @hr <>0
BEGIN
SELECT @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OAMethod Send')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OAMethod Send')
GOTO send_cdosysmail_cleanup
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
GOTO send_cdosysmail_cleanup
END
END
-- Do some error handling after each step if you have to.
-- Clean up the objects created.
send_cdosysmail_cleanup:
If (@iMsg IS NOT NULL) -- if @iMsg is NOT NULL then destroy it
BEGIN
EXEC @hr=sp_OADestroy @iMsg
-- handle the failure of the destroy if needed
IF @hr <>0
BEGIN
select @hr
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'Failed at sp_OADestroy')
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
-- if sp_OAGetErrorInfo was successful, print errors
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, 'sp_OAGetErrorInfo for sp_OADestroy')
END
-- else sp_OAGetErrorInfo failed
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END
END
ELSE
BEGIN
PRINT ' sp_OADestroy skipped because @iMsg is NULL.'
INSERT INTO [dbo].[cdosysmail_failures] VALUES (getdate(), @@spid, @From, @To, @Subject, @Body, @iMsg, @hr, @source, @description, @output, '@iMsg is NULL, sp_OADestroy skipped')
RETURN
END
Далі, за допомогою збереженої процедури, які ви створили і забезпечити належний
Параметри.
declare @Body varchar(4000)
select @Body = 'This is a Test Message'
exec sp_send_cdosysmail 'someone@example.com','someone2@example.com','Test of CDOSYS',@Body
Примітка Тільки члени фіксованого серверну роль " системний адміністратор " можна запустити OLE автоматизації збережених процедур.
Якщо SQL Server користувача не є членом системний адміністратор фіксованого серверної ролі, неможливо використовувати збережену процедуру, яка є
згадується в приклад для надсилання електронна пошта. У такій ситуації можливо, доведеться
розробити клієнтського застосунку для надсилання пошти з CDOSYS. Наприклад, ви можете використовувати
застосунок Microsoft Visual Basic.
CDOSYS посилає сповіщення електронною поштою в
віддалений поштовий SMTP-сервер, указане як cdoSMTPServerName.
Поштовий SMTP-сервер надсилає пошту до сповіщення електронною поштою
адресу, вказану в на до: аргументу ("someone2@example.com" в цьому прикладі). Назва що
Указаний в на з: аргумент відображається як відправника сповіщення електронною поштою
("someone@example.com" в цьому прикладі).
Ви можете змінити цей приклад, щоб він надсилання текстових повідомлень електронна пошта або
вкладення. Документація про CDOSYS відвідайте наступні веб Microsoft
сайт:
Ми настійно рекомендуємо відправити електронна пошта за допомогою місцевих
SMTP папки каталог надсилання замість сценарій виконання віддаленої пошти ім'я SMTP. Sp_send_cdosysmail зразки зберігаються процедура працює в процесі з SQL Server і буде
провал, якщо сервер SMTP в автономному режимі або зламані. Надсилання повідомлень електронна пошта через місцеві
папки каталог надсилання лише вимагає, що збережену процедуру має дозвіл на
папки каталог надсилання. SMTP-сервер буде обробляти самостійно на
пошти.
Для більш
відомості про надсилання пошти за допомогою місцевих пікап каталогу, клацніть
Номер для перегляду статті в знань Microsoft
База:
Номер статті: 312839 - Востаннє переглянуто: 15 жовтня 2012 р. - Редакція: 1.0
Застосовується до:
Microsoft SQL Server 2000 Standard Edition
Microsoft SQL Server 7.0 Standard Edition
Ключові слова:
kbsqlsetup kbhowtomaster kbmt KB312839 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 312839
Дякуємо! Ваш відгук допоможе нам покращити вміст служби підтримки. Щоб ознайомитися з додатковими варіантами отримання допомоги, відвідайте домашню сторінку служби підтримки.