Создание веб-сайта может стать началом большого проекта, а выбор правильной технологии обратной связи с клиентом - ключ к успеху. Разработчики интернет-ресурсов часто используют функцию PHP Mail для отправки электронной почты. Самый удобный способ сделать это, когда посетитель сайта заполняет форму.
История технологий PHP
Они используются для разработки веб-приложений. Технологии эти появились случайно, как и многие другие великие открытия. Расмус Лердорф искал решение проблемы перегрузки на сервере, где он размещал свою личную страницу и учебную программу. Это привело к созданию PHP (Personal Home Page) в 1994. В 1995 году Rasmus выпустил исходный код и создал список рассылки для обмена идей, улучшения, исправления. С тех пор язык рос и развивался как проект с открытым исходным кодом.
В 1996 году, всего через год после опубликования, он уже использовался на 15 000 веб-сайтов. В 1998 году его присутствие в Интернете составило почти 60 000 доменов, это примерно 1 % от общего числа существующих проектов и блогов. В настоящее время PHP используют примерно 24 % всех имеющихся веб-проектов мира.
Такая популярность модели вызвана не только качеством, но и важностью обратной связи. Среди сайтов, которые сегодня используют эту технологию: WordPress, Twitter и Facebook. Поэтому эволюция PHP, отвечающая препроцессору гипертекста, несомненно, экспоненциальная во всех отношениях.
Проект с самоустанавливающимися пакетами
PHP - бесплатный и открытый язык с низкой кривой обучения, его синтаксис прост и соответствует базовым стандартам объектно-ориентированного программирования. Сложные среды разработки не требуются, так же как и время для образования. Программирование ведут без посторонней помощи, все доступные IDE бесплатны, а разработки быстры и просты в настройке.
Развернуть проект в PHP легко, потому что он обладает пакетами самостоятельной интеграции, которые используют: Apache и MySQL как для UNIX (LAMPP), так и для Windows (XAMPP). Оба легко устанавливаются и настраиваются как настольное приложение. Пользователь получает локальный сервер с доступом к базе данных на компьютере, готовый к разработке любого проекта. Не тратится время на проблемы с совместимостью. Кроме того, он предлагает легкий доступ к базам данных и поддерживает многие форматы, а не только MySQL.
Ниже приведен код для основной функции электронной почты. Можно применить сценарий и использовать форму на любом веб-сайте, установив переменные для отправки такого письма.
Первая часть формы проверяет, заполнено ли поле ввода адреса электронной почты. Если это не так, отображается HTML-форма на странице. Если онлайн-письмо подготовлено, после того как посетитель заполнит форму, оно готово к отсылке. При нажатии кнопки «Отправить» страница перезагружается, PHP проверяет, введен ли адрес электронной почты, и отправляет документ.
Популярная почтовая библиотека
Существует множество способов доставки писем. Обычно отправляют электронную почту двумя способами:
- используя встроенную в PHP функцию Mail;
- используя стороннюю библиотеку, такую как PHPMailer с SMTP.
Перед началом использования программы понадобится следующее:
- Веб-хостинг.
- Учетная запись электронной почты.
- Включенная функция PHP Mail.
- Включенная функция SMTP.
- Домен с записи Hostinger MX.
Mail в PHP позволяет отправлять электронную почту с помощью локальной программы sendmail. Каждый раз, когда пользователь запускает сервис почты, он вызывает эту локальную программу, обычно настраиваемую системным администратором. Можно включить или отключить эту функцию в разделе "Электронная почта" -> "Раздел управления почтовой службой".
PHPMailer - популярная библиотека, поддерживающая отправку почты через функцию PHP Mail или SMTP.
Алгоритм работы:
- Чтобы использовать PHPMailer с Hostinger SMTP, сначала необходимо создать идентификатор в разделе «Учетная запись электронной почты» на панели веб-хостинга. У пользователя будет четыре поля: имя пользователя учетной записи электронной почты, пароль, SMTP-хост, порт SMTP.
- После этого начинают установку PHPMailer. Один из простых способов сделать это - использовать Composer, который предварительно интегрирован в планы общего хостинга, поэтому подключаются через SSH и выполняют следующую команду: cd public_html.
- Далее запускают: composer requires phpmailer и ждут несколько минут, пока установка завершится и PHPMailer появится в созданном каталоге поставщиков. Для доставки используется SMTP. Эта строка импортирует класс PHPMailer в глобальное пространство имен и включает в себя различные библиотеки.
- Отправляют HTML-сообщение. Его содержимое будет взято из файла message.html, расположенного в том же каталоге. Это позволяет форматировать текст и дает большую функциональность по сравнению с обычными текстовыми сообщениями.
Запуск скрипта
PHPMailer предлагает пользователю дополнительные функции, которые можно попробовать в официальном репозитории GitHub. Также, если он использует WordPress, то может легко создать контактную форму с помощью плагинов.
Используют PHPMailer не только для отправки сообщений. Можно создать контактную форму, где посетители или пользователи связываются с сайтом. Ниже приведен конечный результат создания формы.
Порядок запуска скрипта:
- Создают файл testphpmailer.php и заполняют поля SMTP, которые были получены ранее.
- Выполняют скрипт, введя YourDomain.com/testphpmailer.php в браузере, появится сообщение.
- Как только пользователь его отправит, то получит подтверждение, что содержимое будет доставлено в ящик электронной почты, указанный в поле Address.
- Если контактная форма PHPMailer не работает, для проверки функции Mail PHP добавляют следующую строку, чтобы узнать причину проблемы: $ mail-> SMTPDebug = 2.
Устранение ошибок
PHPMailer - довольно простой инструмент для освоения. Но время от времени могут возникать ошибки, и тогда функция Mail PHP не работает.
Распространенные проблемы при отсылке почты:
- Адрес отправителя отклонен - ошибка означает, что сервер не смог проверить подлинность, используя предоставленные данные. Чтобы исправить ее, анализируют заголовки from и убеждаются, что они соответствуют существующему почтовому ящику. После устранения скрипт начнет выполняться.
- Gmail не может подтвердить, что example.com отправил сообщение - предупреждение при тестировании почтового скрипта PHP. Означает, что запись SPF не включена, адрес электронной почты не существует или не принадлежит пользователю.
- Сбои DNS - часто рассматриваются как тайм-ауты соединения: «Временный сбой в разрешении имени», «Не удалось разрешить хост», «Сбой getaddrinfo» или подобные ошибки.
- Перенаправление брандмауэра. Это связано с Google, и если пользователь видит что-то вроде имени провайдера, то существуют ошибки аутентификации и проверки сертификата TLS.
- Блокировка SELinux - не позволяет PHP или веб-серверу отправлять электронную почту, что вероятно на RedHat/Fedora/Centos.
Разбор JSON с PHP
Поддержка JSON в PHP чрезвычайно проста, только с одной общей библиотекой для обработки преобразования данных из массивов и объектов PHP. Она быстро набирает популярность благодаря удобочитаемости, мобильности и возможности использования в веб-браузерах без дополнительных баз. Если пользователь настороженно относится к XML, JSON, для него это лучшее направление работы.
С XML комфортнее работать с пользовательскими данными непосредственно в используемом синтаксическом анализаторе XML. С помощью JSON можно немедленно преобразовать данные в объект или массив PHP и работать с ними, используя знакомые структуры PHP, потока управления и функции.
Первое, что нужно сделать приложению - проверить функцию Mail PHP, соответствует ли полученный код ошибки ожиданиям. Для простого запроса GET ответ должен быть 200, если он был успешным.
Чтобы получить код состояния с помощью Json decode, где $ return представляет контент, возвращаемый из запроса API, для $ code будет установлено значение 200. Второй аргумент в функции Mail PHP Json decode post возвращает результат в виде ассоциативного массива, а не объекта.
Еще лучший способ проверить наличие ошибки - сделать следующее:
$json = json_decode($return, true);
$code = $json['code'];
$json = json_decode($return, true);
$error = isset($json['error']);
Очень важно, чтобы код был настроен для правильной обработки и учета всех ошибок. Но даже если запрос сформирован правильно, все равно есть вероятность, что пользователь получит код ошибки при его выполнении.
Преимущество почтового проекта
Для программиста, который хочет изучать PHP, язык программирования предлагает огромные преимущества. У него, пожалуй, одно из крупнейших интернет-сообществ по сравнению с другими, и именно в рамках этой поддержки решается практически любая проблема.
Для каждого пользователя PHP важны его возможности не только в нынешней сети, но и в будущем. С точки зрения специалистов, если эта технология продолжит свой нынешний темп развития, адаптируясь к новым потребностям и добавляя все больше функций, у нее есть будущее.
Преимущества PHP:
- Язык полностью бесплатный и открытый.
- Очень низкая кривая обучения.
- Среды разработки быстро и легко настраиваются.
- Простое развертывание: полностью самоустанавливающиеся пакеты с интеграцией PHP.
- Легкий доступ к базам данных.
- Очень большое сообщество.
Технология PHP интересна, она необходима для решения многих из наиболее востребованных задач, связанных с отправкой электронной почты и использованием вложений.