Почта БД SQL Server 2014 не отправляется - PullRequest
1 голос
/ 10 апреля 2019

Я нахожусь на SQL Server 2014 и получаю удовольствие ... моя почта БД не отправляется, и мне не хватает мест, чтобы искать. Я дважды проверил разрешения учетной записи SQL для исполняемого файла DBmail - он прочитал и выполнил. Я пробовал другой почтовый аккаунт и профиль с такими же неотправленными проблемами.

Я выполняю запросы ниже, как описано здесь

Шаг № 1

Проверка прав dbowner

enter image description here

Настройка # 2

USE MASTER
GO

SP_CONFIGURE 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

SP_CONFIGURE 'Database Mail XPs', 1
RECONFIGURE WITH OVERRIDE
GO

SP_CONFIGURE 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
GO

и выше, запрос успешно выполнен без ошибок

enter image description here

Шаг № 3

Настройка базы данных почты с помощью запроса ниже

EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'P2PEmailNotifications',  
    @description = 'Profile used for sending outgoing notifications using Gmail.' ;  
GO

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'P2PEmailNotifications',  
    @principal_name = 'public',  
    @is_default = 1 ;
GO

EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'MyGmail',  
    @description = 'Mail account for sending outgoing notifications.',  
    @email_address = 'MyGmailSMTPEMAIL@gmail.com',  
    @display_name = 'no-reply@ubl.com.pk',  
    @mailserver_name = 'smtp.gmail.com',
    @port = 555,
    @enable_ssl = 1,
    @username = 'MyGmailSMTPEMAIL@gmail.com',
    @password = 'xxxxxxx' ;  
GO

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'P2PEmailNotifications',  
    @account_name = 'MyGmail',  
    @sequence_number =1 ;  
GO

Шаг № 4

Теперь попробуйте выполнить dbmail, используя следующий запрос:

EXEC [msdb].[dbo].[sp_send_dbmail] 
     @profile_name = 'P2PEmailNotifications', 
     @recipients = 'xxx.xxx.xxx@outlook.com', 
     @subject = @Subject2,
     @body = @Body2,
     @body_format = 'HTML'

выход

Теперь нигде нет ошибок, которые я могу найти в моем окне результатов.

enter image description here

Шаг № 5

Итак, я получил эти запросы, чтобы проверить, есть ли какая-либо ошибка при отправке dbmail и запустить его:

SELECT * 
FROM msdb..sysmail_event_log 
ORDER BY log_id DESC

enter image description here

Это ошибка, которая есть в столбце описания:

Почту не удалось отправить получателям из-за сбоя почтового сервера. (Отправка почты с использованием учетной записи 9 (2019-04-11T00: 21: 06). Сообщение об исключении: не удалось подключиться к почтовому серверу. (Попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через некоторое время или установила соединение не удалось, потому что подключенный хост не смог ответить 64.233.167.109:555). )

SELECT * FROM dbo.sysmail_sentitems

enter image description here

Увидев ошибку, я повторил шаг 3, изменив другой адрес электронной почты Gmail и изменив порт 555 на 587, после чего я получил сообщение об ошибке ниже в столбце описания

enter image description here

Информация об исключении

Тип исключения: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException

Сообщение: не удалось получить элемент из очереди. Причина: список учетных записей, которые могут отправлять это письмо, пуст (возможно, из-за использования неверного профиля).

Данные: System.Collections.ListDictionaryInternal
TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Controller.ICommand CreateSendMailCommand (Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DBSession)
HelpLink: NULL
Источник: DatabaseMailEngine

Информация StackTrace

в Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateSendMailCommand (DBSession dbSession)
в Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandRunner.Run (DBSession db) в Microsoft.SqlServer.Management.SqlIMail.IMailProcess.ThreadCallBack.MailOperation (Object obj)

Заключение

У меня есть очередь предметов с отправленным статусом "не удалось". Как я кратко опишу мою проблему. Итак, мне нужны некоторые ответы от ваших разработчиков, что я делаю что-то не так на своих предыдущих этапах: я что-то упустил или это известная проблема с SQL Server 2014, которой у меня нет в моих поисках? Есть ли другие возможные способы отправить это письмо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...