paul_vin Ответов: 1

Ошибка отправки почты в SQL server при отправке почты с помощью SMTP


Я хочу отправлять почту с помощью sql server, а также получать почту в sql server
но это дает следующую ошибку

The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 16 (2017-09-08T11:32:55). Exception Message: Cannot send mails to mail server. (Service not available, closing transmission channel. The server response was: Cannot connect to SMTP server 8.8.4.4 (8.8.4.4:25), connect error 10060).
)


Что я уже пробовал:

1)
		EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'Asus01',
@description = 'Sent Mail using MSDB',
@email_address = '[EDIT: Removed user name]@gmail.com',
@display_name = 'Vinayak',
@username='[EDIT: Removed user name]@gmail.com',
@password='[EDIT: Removed password]',
@mailserver_name = 'google-public-dns-b.google.com'


когда огонь запросом
select * from sysmail_account
выход есть
17	Asus01	Sent Mail using MSDB	vinayak.paul2011@gmail.com	Vinayak	NULL	2017-09-08 12:31:30.853	sa


2)

EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'Asus01',
@description = 'Profile used to send mail'		

-- select * from sysmail_profile
этот запрос дает следующий вывод
13	Asus01	Profile used to send mail	2017-09-08 12:41:50.767	sa



3)
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'Asus01',
@account_name = 'Asus01',
@sequence_number = 1


--select * from sysmail_profileaccount
этот запрос дает следующий вывод
13	17	1	2017-09-08 12:44:37.163	sa


4)

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


5)
отправлять почту
exec msdb.dbo.sp_send_dbmail @profile_name = 'Asus01', @recipients = 'paulvinayak70@gmail.com', @subject = 'Mail Test', @body = 'Mail Sent Successfully', @body_format = 'text'


6) огонь запросом
select * from sysmail_allitems
		select * from 

кулак в столбце sent_status он показывает
unsent

затем через некоторое время
sent_status column
дисплей
failed

1 Ответов

Рейтинг:
0

Jochen Arndt

Вы уже спрашивали об этом в Ошибка при отправке почты с помощью SQL server[^].

И мой ответ на этот вопрос все еще остается в силе:
Вы должны убедиться, что используете действительный SMTP-сервер.

Но проблема, похоже, в том, что вы не знаете, что такое SMTP-сервер:
Это сервер, который принимает входящую электронную почту (которая в настоящее время обычно требует регистрации / наличия учетной записи). Вы должны использовать те же настройки, что и в вашей программе почтового клиента для используемой учетной записи почты.

То есть smtp.googlemail.com для Gmail и не только google-public-dns-b.google.com который является DNS-сервером.

Но вышеупомянутый почтовый сервер Google не будет принимать почту через порт 25. Он поддерживает только порт 465 с SSL и порт 587 с TLS. Смотреть также Используйте настройки SMTP для отправки почты с принтера, сканера или приложения - справка администратора G Suite[^].

ЗАПИСКА:
Я отредактирую ваш вопрос и скрою информацию о вашей учетной записи (особенно пароль).


paul_vin

На самом деле я не знаю SMTP-сервер, так как я могу найти @mailserver_name с моего компьютера

в моем вышеприведенном случае я нашел @mailserver_name = 'google-public-dns-b.google.com'
использование cmd promt
по команде promt я набрал "nslookup" , которую он мне дал google-public-dns-b.google.com Итак, для SMTP-сервера, как я могу его найти

Jochen Arndt

Используйте те же настройки, что и в программном обеспечении почтового клиента для вашей учетной записи почты. Для учетной записи Gmail сервер smtp.googlemail.com.

Если честно:
Если вы не понимаете этого, вам следует узнать об этом или решить не использовать такие функции, пока вы не узнаете, что делаете.

paul_vin

Даже я пробовал использовать
@mailserver_name = 'smtp.googlemail.com - это не работает та же ошибка

Я тоже пробовал
@port = 587
@port = 465
но все равно ошибка

Jochen Arndt

Вы должны прочитать и понять ссылку Google из моего решения.

Пробуя различные настройки, не зная, что вы делаете, вы не получите его работы.
Различные порты предназначены для различных протоколов безопасного соединения (SSL resp. TLS), который тоже должен быть настроен. См. В документации по SQL Server для sysmail_add_account_sp.

Наконец, вы должны разрешить Google Mail принимать соединения из менее безопасных приложений (см. https://support.google.com/a/answer/6260879?hl=en).