Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Изменения: 17 июля 2006 г.
В этом подразделе описывается, как решать проблему, когда электронное сообщение успешно ставится в очередь, но не доставляется.
Диагностика проблемы
Внешняя программа компонента Database Mail ведет журнал активности электронной почты в базе данных msdb.
Прежде всего с помощью программы Настройка контактной зоны SQL Server убедитесь, что включен компонент Database Mail.
Затем выполните следующую инструкцию в базе данных msdb, чтобы проверить состояние очереди сообщений:
sysmail_help_queue_sp @queue_type = 'Mail' ;
Подробное описание столбцов см. в подразделе «Результирующий набор» раздела sysmail_help_queue_sp (Transact-SQL).
Проверьте, есть ли какие-либо изменения представления sysmail_event_log. В этом представлении должна находиться запись, удостоверяющая, что запущена внешняя программа компонента Database Mail. Если ее нет в представлении sysmail_event_log, см. раздел Сообщение поставлено в очередь, но записей в sysmail_event_log нет. Если в представлении sysmail_event_log появились ошибки, устраните их.
Если в представлении sysmail_event_log есть записи, свидетельствующие о запуске внешней программы, проверьте сообщения о состоянии в представлении sysmail_allitems.
Состояние сообщения «unsent»
Состояние unsent означает, что внешняя программа компонента Database Mail еще не обработала электронное сообщение. Иногда она не очень быстро это делает, скорость их обработки зависит от параметров сети, времени ожидания перед повтором, объема сообщений и ресурсов SMTP-сервера. Если проблема остается, попробуйте отсылать сообщения из нескольких профилей и с нескольких SMTP-серверов.
Проверьте последнюю дату успешной отправки сообщений. Если после последней успешной отправкой прошло много времени, через представление sysmail_event_log убедитесь, что внешняя программа была успешно запущена компонентом Service Broker. Если последняя попытка активировать программу завершилась ошибкой, проверьте, что Внешняя программа компонента Database Mail находится в верном каталоге и учетная запись службы SQL Server имеет разрешения на ее запуск.
Примечание. |
|---|
| Чтобы удалить старые неотправленные сообщения, дождитесь момента, когда они станут самыми старыми сообщениями в очереди, а затем воспользуйтесь хранимой процедурой sysmail_delete_mailitems_sp для их удаления. |
Состояние сообщения «retrying»
Состояние «retrying» свидетельствует о том, что компонент Database Mail попытался доставить сообщение, но SMTP-сервер не смог этого сделать. Обычно причиной служат ошибки в сети, сбой SMTP-сервера или неправильная конфигурация учетной записи компонента Database Mail. Рано или поздно это сообщение будет отправлено или не отправлено и сохранено в состоянии ошибки и с записью в журнале событий.
Состояние сообщения «sent»
Состояние sent означает, внешняя программа компонента Database Mail успешно доставила электронное сообщение SMTP-серверу. Если у получателя сообщение не появилось, то это означает, что SMTP-сервер принял сообщение от компонента Database Mail, но не смог доставить его получателю. Проверьте журналы SMTP-сервера или свяжитесь с его администратором. SMTP-сервер также можно проверить с помощью другого почтового клиента, например Outlook Express.
Состояние сообщения «failed»
Состояние failed означает, что внешняя программа компонента Database Mail не смогла доставить электронное сообщение SMTP-серверу. В этом случае в представлении sysmail_event_log хранится подробные сведения, полученные из внешней программы. Образец запроса, соединяющего представления sysmail_faileditems и sysmail_event_log для получения сообщений об ошибках, см. в разделе Как проверить состояние сообщений электронной почты, отправленных при помощи компонента Database Mail (Transact-SQL). Наиболее частая причина ошибок — неверный адрес получателя, проблемы в сети, из-за которых внешняя программа не может использовать резервные учетные записи. Проблемы SMTP-сервера также могут быть причиной того, что сообщения сервером отклоняются. Чтобы выяснить, где происходит ошибка, в мастере настройки компонента Database Mail измените значение параметра Уровень ведения журнала на Подробный и отправьте тестовое сообщение.
См. также
Задачи
Устранение неполадок в работе компонента Database Mail
Устранение неполадок компонента Database Mail: основные шаги
Основные понятия
Структура компонента Database Mail
Компонент Database Mail
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
| Версия | Журнал |
|---|---|
17 июля 2006 г. |
|
Примечание.