Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проверка доменных имен из email  [new]
Aleksey br
Member

Откуда:
Сообщений: 73
Привет!
У меня на в БД залетают email-адреса, которые я на лету проверяю на синтаксис (может\не может такой email существовать)
И уже перед записью Email со статусом валидности в таблицу я его хотел проверять функцией на существование домена.
CREATE FUNCTION [dbo].[CHECK_DOMAIN] (@Domain VARCHAR(250))
RETURNS INT
AS
BEGIN

DECLARE @R INT
declare @cmnd  varchar(2000)
declare @ip varchar(15)
declare @res varchar(15)
set @ip = substring (@Domain,patindex('%@%',@Domain)+1,len(@Domain)-patindex('%@%',@Domain))  -- ip-адрес проверяемого узла
set @cmnd = 'ping -n 1 '+@ip
CREATE TABLE #tmp(s varchar(1000))
INSERT #tmp exec master.dbo.xp_cmdshell @cmnd
SET @res = (SELECT * FROM #tmp WHERE s LIKE '% lost%' )
DROP TABLE #tmp
if (rtrim(ltrim(@res)) like  '(0% lost)' or @res is null)
SET @R = 1
else 
SET @R = 2

RETURN(@R)
END


однако оказалось, что 'INSERT EXEC' нельзя использовать в функции
как это можно обойти эту ошибку или чтобы можно было проверять список доменов
20 апр 17, 10:32    [20417569]     Ответить | Цитировать Сообщить модератору
 Re: Проверка доменных имен из email  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Aleksey br,

домены надо чекать асинхронно отдельным приложением и не путем пинга, а путем коннекта к сервисам.
У вас что, сервер в интернет светит?
20 апр 17, 11:29    [20417928]     Ответить | Цитировать Сообщить модератору
 Re: Проверка доменных имен из email  [new]
Aleksey br
Member

Откуда:
Сообщений: 73
[quote Владислав Колосов]
домены надо чекать асинхронно отдельным приложением и не путем пинга, а путем коннекта к сервисам.
/quote]
сервисы для многих почтовых служб не актуальны: к примеру mail.ru позволяет проверить только пару почтовых ящиков в час
20 апр 17, 11:55    [20418079]     Ответить | Цитировать Сообщить модератору
 Re: Проверка доменных имен из email  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Aleksey br,

Но пинг не гарантирует наличие сервиса. Тут уже надо понимать риски и принимать.
20 апр 17, 13:05    [20418434]     Ответить | Цитировать Сообщить модератору
 Re: Проверка доменных имен из email  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31442
Aleksey br
сервисы для многих почтовых служб не актуальны: к примеру mail.ru позволяет проверить только пару почтовых ящиков в час
Так ему нужно проверить почтовый сервер, а не почтовый ящик.
То есть попался в первый раз mail.ru ,проверил его, записал галочку.

Естественно, нужно вести таблицу доменов, а не проверять mail.ru стотыщ раз в каждом почтовом адресе с mail.ru
20 апр 17, 13:54    [20418699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить