Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 61903
Организация зап... 59284
Invision Power ... 59136
Приложение «Про... 58053
Модуль Forms 57426
Оператор выбора... 57303
Подключение Mic... 56730
Создание отчето... 56554
ТЕХНОЛОГИИ ДОСТ... 52779
Программируемая... 50459
Пример работы с... 48616
Имитационное мо... 48338
21 ошибка прогр... 43176
Реклама
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 13,030
новичок: SLAVA_747
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы аэропорта на GPSS + Пояснительная записка
Моделирование процесса обеспечивающего надежность функционирования АСУ Т...
Информационная система - продуктовый магазин на Turbo Pascal (База данны...

Реклама

PHP и DNS. Проверка почтового адреса
Функция getmxrr
string getmxrr(string hostname, array mxhost, [, array weight])

Эта функция принимает в качестве аргумента имя хоста hostname

в данном домене и заполняет массив mxhost

списком почтовых ретрансляторов этого домена. Если указан третий необязательный аргумент weight , то функция заполняет его значениями предпочтения, которые возвращает ей почтовый ретранслятор

Обычно когда требуется послать сообщения по адресу username@someserver.com, необходимо сначала узнать хост почтового ретранслятора для домена someserver.com, а затем получить его ip-адрес.

После этого можно соединяться с хостом для доставки почты.

В домене может быть несколько почтовых ретрансляторов с разными значениями предпочтения, поэтому, получив список ретрансляторов, имеет смысл устанавливать соединение с тем из них, который имеет максимальное значение предпочтения.

В следующем листинге показан пример кода, с помощью которого можно получить список почтовых ретрансляторов:

Получение списка почтовых ретрансляторов
$domain = "server.com";
getmxrr($domain, $maillist, $priority);
echo("Список почтовых ретрансляторов хоста $domain:
\n");
for($i = 0; $i < count($maillist), ++$i)
{
echo("$maillist[$i] = $priority[$i]
\n");
}
?>

Проверка существования адреса электронной почты

Заметим сразу, что речь идет не о проверке адресов с помощью регулярного выражения, а о проверке существования хоста почтового ретранслятора для некоторого домена.

Т.е. приведенный выше код можно практически не перерабатывая приспособить для проверки существования e-mail адреса:
$email_arr = explode("@" , $email);
$host = $email_arr[1];

if (!getmxrr($host, $mxhostsarr))
{
echo "На адрес $email отправка почты невозможна";
exit;
}

getmxrr($host, $mxhostsarr, $weight);
echo "На $email письма могут отправляться через следующие хосты:
";
for ($i=0; $i < count($mxhostsarr); $i++)
{
echo ("$mxhostsarr[$i] = $weight[$i]
");
}

?>

А вот так выглядит функция проверки правильности E-Mail'а. Помните, эта функция проверят только существование почтового сервера и синтаксическую правильность адреса. Для полной проверки существования адреса необходимо отправить на него письмо со случайным кодом и попросить получателя письма ввести этот код а форме, на вашем сайте.
function CheckEmail($Email)
{
if (!eregi("^[\._a-zA-Z0-9-]+@[\.a-zA-Z0-9-]+\.[a-z]{2,6}$", $Email)) return 1;
list($Username, $Domain) = split("@",$Email);
if (@getmxrr($Domain, $MXHost)) return 0;
else
{
$f=@fsockopen($Domain, 25, $errno, $errstr, 30);
if($f)
{
fclose($f);
return 0;
}
else return 1;
}
}

Функция возвращает 1, если адрес указан неверно и 0, если все порядке.
Опубликовал Kest November 06 2008 00:36:22 · 0 Комментариев · 6475 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
PDJ_Anima
Размещение элемен...
SynEdit
Ehlib
Эффект лампы на р...
TDBF
ИНТЕРНЕТ ПРОГРАММ...
Ics
MiniTetris [Исход...
Усложнённый кальк...
SMLPack v1.0
CS:Source - монит...
Динамические за...
SysInfo [Исходник...
PHP/MySQL для нач...
C++ Builder: Книг...
База каталогов ( ...
Иллюстрированный ...
Разработка Web-пр...
PolyFlow

Топ загрузок
Приложение Клие... 100319
Delphi 7 Enterp... 79112
Converter AMR<-... 20023
Borland C++Buil... 10776
GPSS World Stud... 9536
Borland Delphi ... 7772
Turbo Pascal fo... 6901
Visual Studio 2... 4915
Калькулятор [Ис... 4082
FreeSMS v1.3.1 3486
Случайные статьи
Аватар
Табл. 15-6.
настраиваемых в MSDSS
Приведение типов и...
Рик Лемонс как-то ...
КЛАССЫ С ДИНАМИЧЕС...
Файл компоновки ви...
Вспомогательные пр...
ДЕЙСТВИТЕЛЬНО ЛИ Н...
Как провести свобо...
Генерирование сигн...
Протокол BiSync от...
Казино Адмирал
МОДЕЛЬ, ПРЕДСТАВЛЯ...
Естественный отбор...
Блок TERMINATE
Четкое разграничен...
Как перемещать кур...
Нерекурсивное вычи...
Управление ресурсами
Visual Studio. Ком...
Все сетевые операц...
Как писать друзьям...
Установка или наст...
12.4. Принципы
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?