скрипт проверки почты php
Проверяем e-mail на валидность на PHP/jQuery
Сегодня я хотел бы поговорить с вами немного о валидности. Что это такое? Это проверка введенной информации согласно какому-либо шаблону, маске. Все мы знаем, что мобильный телефон для России начинается с +7, а e-mail должен содержать в себе знак @.
Если какое-то из условий не выполнено, то логично уведомить об этом пользователя, чтобы в последующем не получить от него ошибочных данных. Сегодня я покажу вам, как двумя способами проверить корректность введенной электронной почты пользователя.
Проверка валидности e-mail на PHP
Итак, мы полагаем, что в какую-то переменную нам поступает e-mail пользователя. Наша задача – проверить ее корректность, и если в адресе имеется ошибка – сообщить пользователю об этом.
Соответственно, если e-mail некорректен, вы можете вывести необходимое сообщение и остановить дальнейшее выполнение скрипта (в нашем случае – отправку) до тех пор, пока не будет указан правильный e-mail.
Проверка валидности e-mail на jQuery
Поскольку jQuery – клиентский скрипт (то есть выполняется на стороне пользователя), то здесь мы рассмотрим live-пример, где при введении e-mail в некоторое поле будет мобильно происходить проверка его на корректность.
У нас есть поле для ввода e-mail:
Теперь напишем небольшой скрипт, который будет проверять корректность заполненного поля после того, как оно потеряло фокус:
По желанию, в случае некорректного ввода можно вывести необходимое сообщение или, например, заблокировать кнопку формы.
Проверка правильности email на PHP
Проверка правильного формата вводимых данных очень важна в любых информационных системах. В данной статье, мы рассмотрим возможности PHP проверить, корректно ли указан адрес электронной почты (email). Обращу внимание, что речь идет лишь о проверке корректной структуры адреса. Дело в том, что адрес, может либо быть корректным (т.е. валидным), но при этом не существовать. Например, пользователь может просто ошибиться символом при вводе. Поэтому задача данной статьи – отсеять заведомо некорректные значения для email.
Как известно email состоит из двух основных частей. Например, адрес: MyEmail@myssite.ru.
Здесь, MyEmail – это непосредственный адрес (или логин) пользователя, а myssite.ru – адрес сайта, которому соответствует электронная почта.
Следовательно, проверка адреса на валидность заключается в том, что он должен соответствовать структуре:
В итоге, задача сводилась к построению регулярного выражения для проверки, соответствует ли проверяемая стока допустимым символам и структуре email. Но, начиная с PHP 5.2, появилась возможность выполнить эту проверку встроенной функцией filter_var(). Пример такой проверки:
В первый параметр функции указывается строковое значение, которое нужно проверить. Второй параметр – это идентификатор применяемого фильтра (в данном случае для проверки email). Функция filter_var() универсальна и может быть использована для проверки различных значений – числовое значение, логическое или проверка валидности IP-адреса.
Валидация email с использованием регулярного выражения PHP
Если же либо версия PHP не позволяет вам применить описанный выше метод, либо хотите просто действовать по старинке, то можно использовать регулярные выражения:
Если используете подобное регулярное выражение, стоит быть внимательным к возможным адресам. Например, в данный код решит, что введенное значение не email, если доменная зона будет более 5 символов или если адрес будет задан кириллицей. Поэтому, применяя его, учитывайте возможные вводимые значения.
Читали мое письмо или нет? Как проверить с помощью php
Сегодня столкнулся с интересной проблемой – нужно было сделать почтовую рассылку, и потом определить на каких почтовых ящиках прочитали письмо, а на каких нет. Рассылка писем это отдельная история, как-нибудь напишу и про нее, но сейчас я хочу рассказать о том, как можно сделать проверку, читали письмо или нет.
Как это можно сделать? Все очень просто: в письмо мы вставим картинку белого цвета 1на 1 пиксель. Формировать эту картинку будем с помощью php скрипта. Выглядеть это будет, примерно, вот так:
Таким образом, мы сможем просто подсчитать количество обращений к скрипту. Но чтобы определить, с какого именно ящика было открыто письмо, необходимо добавить параметр, который будет определять e-mail адрес. Этот параметр будем приписывать при отправке письма, для каждого адреса свой. Чтобы значение параметра не сильно бросалось в глаза можно его закодировать, например, методом base64. После добавления параметра картинка у нас будет вызываться вот таким образом:
По сути, остается только написать скрипт, который будет собирать статистику и генерировать пиксель. Но не все так просто, оказывается, что некоторым почтовикам, такая ссылка кажется подозрительной, и ее блокируют. Но выход есть и из этой ситуации. Тут нам поможет mod_rewrit, с его помощью можно изменять url как угодно. Сделаем ссылку вот такого вида:
Все, теперь осталось просто написать скрипт — img.php, который будет вести статистику и отдавать картинку:
Читали мое письмо или нет? Как проверить с помощью php: 2 комментария
Полезная информация, не плохо было бы посмотреть видео инструкцию.
Отправка mail() в php
Рассмотрим, как отправить почтовое сообщение с помощью php функции mail(). В данной статье мы создадим максимально «белую» отправку, чтобы ваше письмо не попало в папку «Спам».
Какие мы решим возможные проблемы:
При создании нашего php кода для отправки функции mail() мы учтём моменты выше, чтобы минимизировать процент попадания письма в папку «Спам».
Создание файла mail.php и основных переменных
Создадим в корне сайта файл mail.php и добавим в него следующий код.
Мы создали 4 переменных:
Формирование текстовой версии письма (text/plain) и таблицы для HTML-версии
Таким образом, мы обработали полученные с фронтенда данные формы.
Доработка HTML-версии почтового сообщения
Создание заголовков почтового письма
Сформируем заголовки в виде массива (для PHP >= 7.2).
Формирование итогового сообщения письма
Собираем воедино сообщение, которое будем использовать для отправки 3 параметром функции mail().
На что стоит обратить внимание:
Желательно чтобы заголовки From, Reply-To и Return-Path совпадали.
Отправка mail() в php с проверкой
Все необходимые переменные для заполнения параметров мы подготовили, осталось отправить письмо и в случае ошибки вернуть сообщение об этом.
Итоговый код
В результате наш mail.php должен выглядеть примерно так:
PHP_ORIG_SCRIPT
Для удаления заголовка X-PHP-Originating-Script существует 2 способа
(если знаете ещё, поделитесь в комментариях):
Чтобы не попасть в папку спам мы сделали всё от нас зависящее.
Остальные настройки вам необходимо делать на сервере: SPF, DKIM, DMARC, PTR.
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Подтверждение адреса электронной почты на PHP
Я получил множество вопросов от моих читателей, в большинстве из которых они спрашивали меня, как реализовать систему подтверждения адреса электронной почты с помощью PHP.
База данных
Примерная таблица базы данных users содержит пять столбцов: идентификатор пользователя ( uid ), адрес электронной почты ( email ), пароль ( password ), активация ( activation ) и статус ( status ):
HTML код
Содержит простой HTML код:
db.php
Файл конфигурации базы данных, измените имя пользователя, пароль, базу данных и основные значения URL:
index.php
Содержит PHP код, который сохраняет данные регистрации пользователя в таблицу users.
Здесь же находится генерация кода активации с помощью MD5 шифрования:
Send_Mail.php
В этом файле находится функция отправки сообщения, измените только SMTP хост, имя пользователя и пароль.
Здесь вы можете использовать элементы GMail SMTP для тестирования:
activation.php
Содержит PHP код, в котором статус пользователя, основанный на коде активации, обновляется со значения 0 до 1.
Подтверждение адреса электронной почты
.htaccess
Скрипт перенаправления URL, который превращает
CSS код
Очень даже можно и мало того, предпочтительнее. Исправил на ваш вариант. Спасибо)