(По материалам Q263556)
Введение
Настройка SQL Mail для Exchange
Настройка SQL Mail для POP3/SMTP сервера
Почтовый клиент Windows Messaging
Почтовый клиент Outlook 97/98
Почтовый клиент Outlook 2000
Почтовый клиент Outlook Express
Из личного опыта
Введение
Для запуска SQL Mail, Вы должны завести почтовый
account (один и в домене и локально) на Microsoft Exchange или Internet Mail
сервере и сконфигурировать на сервере баз данных Mail Application Programming
Interface (MAPI) клиентской части (Microsoft Outlook или Microsoft Windows
Messaging).
Прежде, чем конфигурировать SQL Mail, Вы должны
проверить работоспособность конфигурацию почты, зарегистрировавшись в
NT под учётной записью, для которой заведён почтовый account SQL Mail.
SQL Mail позволяет SQL серверу посылать и принимать
электронную почту и устанавливать подключение к почтовому серверу. SQL Server
6.5 использует единственную службу, которая обрабатывает почту. SQL Server 7.0
использует для этого две службы:
-MSSQLServer обрабатывает всю почту, в том числе и через хранимые процедуры.
-SQLServerAgent использует собственные
почтовые возможности, которые конфигурируются и используются отдельно от SQL Mail.
SQL Mail и SQLServerAgent устанавливают MAPI
соединение с почтовым сервером, который может быть Microsoft Exchange Сервер,
Microsoft Windows NT Mail, или любой другой, поддерживающий Post Office
Protocol 3 (POP3) сервер. Microsoft не поддерживает обмен с серверами Lotus
Notes, Lotus cc:Mail, или Novell GroupWise по их собственным протоколам. Для
этого они должны быть подключены, как POP3 сервера.
SQL Mail является обычной прикладной программой,
которая использует Mapi32.dll для вызова соответствующего API, через который
происходит управление MAPI спулером Windows Messaging (Mapisp32.exe). Таким
способом обеспечивается пересылка почты, после чего спулер закрывается. Раньше
случалось, что этот процесс не выполнялся должным образом, и почта оставалась в
Outbox. Проблема была установлена в Microsoft Windows NT 4.0 Service Pack 3.
(Microsoft Knowledge Base Q159425). Проблема была в не верной версии Mapi32.dll.
При создании конфигурации (профиля) для почтового
клиента SQL Mail, не допускается использование специальных символов (типа
дефисов, знака фунта, двоеточия и т.д.) потому, что они могут работать с
клиентом Exchange (Outlook), но не совместимы с SQL Mail. По той же самой
причине, имя конфигурации не может быть дольше 32-х символов.
Настройка SQL Mail для Exchange
1. На сервере Microsoft Exchange заведите почтовый
ящик для учетной записи пользователя, от имени которого стартует MSSQLSERVER.
Эта учётная запись должна входить в домен. Например:
Account: DOMAIN1SQLServerAccount
Mailbox: SQL1
2. На SQL сервере зарегистрируйтесь в Windows NT под
этой учетной записью (DOMAIN1SQLServerAccount).
3. Установить клиента Exchange на SQL сервере. Это
может быть старый клиент Microsoft Exchange, Microsoft Outlook 98 или Microsoft
Outlook 2000.
4. Запустите клиента Exchange и настройте профиль
этого пользователя так, чтобы обеспечить подключение к Microsoft Exchange
серверу. После того, как настройка профиля закончена, проверьте, что Вы можете
посылать и принимать почту в интерактивном режиме. Закройте почтового клиента.
5. Запустите программу Mail в Control Panel. Нажмите
«Show Profiles» и выберите заведённый Вами профиль в п.4.
6. В «Control Panel» нажмите Services, и затем
проверите, что служба MSSQLSERVER запускается под правильной учётной записью,
как определено в п.2. Запустите или перезапустите сервис MSSQLSERVER, если это
необходимо.
7. В конфигурации SQL Mail укажите профиль из п.5. SQL
Mail использует account и пароль, учётной записи, от имени которой стартует
MSSQLSERVER. Если в списке доступных профилей пусто, скорее всего, Вы запустили
MSSQLSERVER под Local System account.
8. В случае удачной конфигурации SQL Mail, значок SQL
Mail становится зеленым. Протестируйте работу SQL Mail, открыв окно запроса, и используя
xp_sendmailil для посылки пробного письма на свой почтовый ящик. Если Вы
используете SQL Server 7.0, точно также конфигурируйте SQLServerAgent с тем же
самым профилем, как у SQL Mail.
Настройка SQL Mail для POP3/SMTP сервера
Процедура для установки SQL Mail для POP3/SMTP подобна установке с Exchange:
1. На сервере POP3 (для входящей электронной почты)
заведите mailbox для учетной записи пользователя SQL Mail. Вы также должны
завести mailbox для исходящей почты на сервере SMTP, если он отличается от
сервера POP3.
2. Установите Internet Mail клиента на компьютере SQL сервер. Microsoft поддерживает
только Microsoft Windows Messaging (который поставляется с Windows NT 4.0) и
Microsoft Outlook 97/98/2000. Поскольку Microsoft Outlook Express является
простым MAPI клиентом и не создает профиль для Mail, он не подходит для работы с SQL Mail.
3. Зарегистрируйтесь в Windows NT под account, от
имени которого стартуют сервисы SQL сервера. Запустите Internet Mail клиента, и
настройте профиль для подключения к POP3 и SMTP серверам. Имя account и пароль
доступа к POP3/SMTP серверу - не обязательно тот же самый, что у account SQL
сервера. Проверьте, что Вы можете посылать и принимать почту в интерактивном
режиме.
4. В Control Panel, нажмите Mail. Нажмите «Show
Profiles» и выберете заведённый профиль. Проверьте, что его название
удовлетворяет представленным выше ограничениям.
5. В Control Panel, нажмите Services и проверите, что
MSSQLSERVER запускается от имени правильной учетной записи.
6. Установите новый профиль для SQL Mail.
7. Значок SQL Mail должен стать зеленым, после чего
можно проверить его работоспособность, как в варианте для
Exchange.
ПРЕДУПРЕЖДЕНИЕ: Если Вы используете SQL Mail и POP3,
Вы должны протестировать способность клиента неоднократно подключаться к
почтовому серверу. Для проверки этого запустите несколько раз почтового
клиента, и каждый раз посылайте по
письму. Если в течение этого процесса у Вас будет запрошен пароль или любое
другое подтверждение, то SQL Mail не будет нормально работать. Связь SQL Mail с
почтовым сервером должна быть 100-процентной, иначе каждый раз Вам придется
перезагружать сервер, чтобы исключить проблему. Причина этого в том, что SQL Mail
не предусматривает повторения запроса на доступ к POP3 account. Если SQL Mail
не может подключить к серверу POP3 с первого раза, Internet Mail клиент,
обычно, открывает диалоговое окно с запросом на повтор. MSSQLSERVER никогда не
видит эти диалоговые окна и остаётся в ожидании. Вам
придется выгрузить Mapisp32.exe или перезагрузит Windows NT.
Почтовый клиент Windows Messaging
Microsoft Windows Messaging использует учётную запись
Windows NT 4.0, и может работать с Microsoft Mail или POP3/SMTP. Ранее был
обнародован баг, который проявлялся тем, что почта SQL Mail застревала в
Outbox, если Windows Messaging не был запущен. Эта проблема была устранена в
Microsoft Windows NT 4.0 Service Pack 3. но, начиная с Windows NT Service Pack
4 она опять вернулась. Видимо Microsoft полностью отказалась от поддержки почтового клиента
Windows Messaging. Для устранения проблемы, если Вы регулярно устанавливаете
все обновления, Вам надо записать правильный Mapi32.dll. Если Mapi32.dll от
10/14/1996, и размер его - 621КБ (версия 4.0), это не правильный DLL.
Если Mapi32.dll от 5/1/1997 и размер его - 701КБ (также версия 4.0, но из комплекта Windows NT 4.0
service pack 3), это правильный DLL. Windows Messaging не входит в состав Windows 2000, так
что для этой ОС Вы должны устанавливать почтового клиента Microsoft Outlook.
Почтовый клиент Outlook 97/98
Microsoft Outlook поддерживает Exchange и POP3/SMTP
сервера. Outlook 97 поставляется с Microsoft Office 97 и с Mapi32.dll от
12/20/96 с размером 714КБ. Эта версия файла №4.00.993.3 также страдает застреванием
почты от SQL Mail в Outbox. Проблема решается установкой Outlook 98 или Outlook
2000. Outlook 98 – самостоятельный продукт и должен быть установлен в любой
конфигурации, кроме Internet Only. Также наблюдаются проблемы с DLL.
Mapi32.dll от 3/26/1998, версии 5.5.2163 не правильный. Mapi32.dll 57КБ от
3/26/1998, версии 5.5.2174.0 и последующие версии, это
правильный DLL. Если Вы уже устанавливали Outlook 98 с опцией Internet Only, вам его придётся
переустановить. В работоспособной конфигурации, Outlook 98 не поддерживает
Internet Message Access Protocol (IMAP). Если Вам нужен IMAP, Вы должны
установить Outlook Express (в дополнение к Outlook), для посылки и приема IMAP
почты SQL Mail.
Почтовый клиент Outlook 2000
Microsoft Outlook 2000 поддерживает Exchange и
POP3/SMTP сервера и поставляется в комплекте Microsoft Office 2000. В нём была
полностью изменена модель MAPI (см. Q195795). Outlook 2000 также не допустимо
устанавливать в конфигурации Internet Only.
После установки Outlook 2000 должны иметься, по крайней
мере, два Mapi32.dll, один датированный 1/14/1999, версии 1.0.2536.0 в
WinntSystem32 (для обратной совместимости), и другой файл, датированный
1/26/1999, версии 1.0.2518.0 в Program FilesCommon FilesSystemMapi1033NT
(используемый Outlook 2000). Если Вы не имеете Mapi32.dll файла в
WinntSystem32, Outlook 2000 будет работать, но не будет работать SQL Mail.
Если это случилось, скопируйте Mapi32.dll файл из Program FilesCommon
FilesSystemMapi1033NT в папку WinntSystem32.
Почтовый клиент Outlook Express
Outlook Express не поддерживается SQL Mail. SQL Mail использует
почтовый профиль, который отсутствует у Outlook Express. Даже если Вы явно не установили
Outlook Express, как почтовый клиент по умолчанию, инсталляция или обновление
Internet Explorer может объявить его системе, как почтовый клиент по умолчанию.
Для некоторых версий Internet Explorer и Outlook Express (например, Internet
Explorer 5.0), SQL Server игнорирует профиль и пытается использовать заданного
по умолчанию почтового клиента Outlook Express, хотя внешне такой глюк может ни
как не проявляться, ваш SQL Mail не сможет нормально работать, если Outlook
Express не был подключён к POP3/SMTP серверу. Если Вы попытаетесь запускать SQL
Mail через SQL Enterprise Manager, это приведёт к зависанию последнего. Также
возможны проблемы с DLL. При инсталляция Internet Explorer могут быть заменены
Mapi32.dll и Mapi32x.dll. Выход следующий: если размеры этих двух файлов 128КБ
для Mapi32.dll и 701КБ для Mapi32x.dll, поменяйте их названия, и пытайтесь
запускать SQL Mail снова.
Из личного опыта
Я уже несколько лет использую SQL Mail для 6.5, который «крутится» под NT 4 EE. В
качестве почтового клиента использую Russian MS Exchange Client с диска №19 Microsoft
Developer Network BackOffice Test Platform-INTL . Клиент выбирался из
соображений минимизации отвлекаемых на его работу ресурсов сервера (кто
устанавливал Outlook знает, какой это монстр). Никаких проблем с
DLL не наблюдалось. Сейчас у меня стоит SP6a , а до этого я устанавливал их все,
начиная с SP3.
IE не переустанавливал, он мне не нужен. Правда, если Exchange
сервер отваливается на долго, приходится или перегружать сервер баз
данных или перезапускать его сервисы.
Перевод: Александр Гладченко 2001г.
|