Что такое почта PHP?
Почта PHP — это встроенная функция PHP, которая используется для отправки писем из сценариев PHP.
Функция mail принимает следующие параметры;
- Адрес электронной почты
- Тема
- Сообщение
- Адреса электронной почты CC или BC
- Это экономически эффективный способ уведомления пользователей о важных событиях.
- Разрешите пользователям связываться с вами по электронной почте, предоставив форму обратной связи на веб-сайте, которая отправляет предоставленный контент по электронной почте.
- Разработчики могут использовать его для получения системных ошибок по электронной почте
- Вы можете использовать его для отправки подписчиков по электронной почте.
- Вы можете использовать его для отправки ссылок для сброса пароля пользователям, которые забыли свои пароли
- Вы можете использовать его для отправки по электронной почте ссылки для активации / подтверждения. Это полезно при регистрации пользователей и проверке их адресов электронной почты
В этом уроке вы узнаете
- Почему / Когда использовать почту PHP
- Простой протокол передачи почты
- Дезинфекция входных сообщений пользователей электронной почты
- Безопасная почта
Почему / Когда использовать почту PHP
Отправка почты с использованием PHP
Почтовая функция PHP имеет следующий основной синтаксис
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
ВОТ,
- «$ To_email_address» — адрес электронной почты получателя
- «$ Subject» — это тема письма
- «$ Message» — это сообщение для отправки.
- «[$ Headers]» является необязательным, его можно использовать для включения такой информации, как CC, BCC
- CC является аббревиатурой от точной копии. Он используется, когда вы хотите отправить копию заинтересованному лицу, т.е. электронное письмо с жалобой, отправленное в компанию, также можно отправить в виде CC на доску жалоб.
- BCC является аббревиатурой от слепой копии. Это похоже на CC. Адреса электронной почты, включенные в раздел BCC, не будут показаны другим получателям.
Простой протокол передачи почты (SMTP)
PHP Mailer использует простой протокол передачи почты (SMTP) для отправки почты.
На размещенном сервере настройки SMTP уже были бы установлены.
Настройки почты SMTP можно настроить из файла «php.ini» в папке установки PHP.
Настройка параметров SMTP на локальном хосте. Если вы используете xampp в Windows, найдите «php.ini» в каталоге «C: \ xampp \ php».
- Откройте его с помощью блокнота или любого текстового редактора. Мы будем использовать блокнот в этом примере. Нажмите на меню редактирования
- Нажмите на меню «Найти…»
- Появится диалоговое меню поиска
- Нажмите на кнопку Найти далее
- Найдите записи
- [функция почты]
- ; XAMPP: не удаляйте полуколонну, если вы хотите работать с SMTP-сервером, таким как Mercury
- ; SMTP = локальный хост
- ; smtp_port = 25
- Удалите точки с запятой перед SMTP и smtp_port и установите SMTP для вашего сервера SMTP и порт для вашего SMTP-порта. Ваши настройки должны выглядеть следующим образом
- SMTP = smtp.example.com
- smtp_port = 25
- Обратите внимание, что настройки SMTP можно получить у провайдеров веб-хостинга.
- Если сервер требует аутентификации, добавьте следующие строки.
- auth_username = [email protected]
- auth_password = пример_пароль
- Сохраните новые изменения.
- Перезапустите сервер Apache .
Пример почты Php
Давайте теперь посмотрим на пример, который отправляет простую почту.
<?php $to_email = 'name @ company . com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail function'; $headers = 'From: noreply @ company . com'; mail($to_email,$subject,$message,$headers); ?>
Вывод:
Примечание: приведенный выше пример принимает только 4 обязательных параметра.
Вы должны заменить вышеуказанный фиктивный адрес электронной почты реальным адресом электронной почты.
Дезинфекция входных сообщений пользователей электронной почты
Приведенный выше пример использует жестко закодированные значения в исходном коде для адреса электронной почты и другие детали для простоты.
Предположим, вам нужно создать контактную форму для пользователей, чтобы заполнить детали, а затем отправить.
- Пользователи могут случайно или намеренно ввести код в заголовки, что может привести к отправке спама
- Чтобы защитить вашу систему от таких атак, вы можете создать пользовательскую функцию, которая очищает и проверяет значения перед отправкой почты.
Давайте создадим пользовательскую функцию, которая проверяет и дезинфицирует адрес электронной почты, используя встроенную функцию filter_var.
Функция Filter_var Функция filter_var используется для очистки и проверки введенных пользователем данных.
Он имеет следующий основной синтаксис.
<?php filter_var($field, SANITIZATION TYPE); ?>
ВОТ,
- «Filter_var (…)» — это функция проверки и очистки
- «$ Field» — это значение поля для фильтрации.
- «ТИП САНИТИЗАЦИИ» — это тип санации, выполняемой на поле, такой как;
- FILTER_VALIDATE_EMAIL — возвращает true для действительных адресов электронной почты и false для недействительных адресов электронной почты.
- FILTER_SANITIZE_EMAIL — удаляет недопустимые символы с адресов электронной почты. info \ @domain. (com) возвращает [email protected] .
- FILTER_SANITIZE_URL — удаляет недопустимые символы из URL. http: //[email protected]é возвращает> http: //[email protected]
- FILTER_SANITIZE_STRING — удаляет теги из строковых значений. <b> Я полужирный </ b> становится Я полужирный.
Приведенный ниже код реализует пользовательскую функцию для отправки защищенной почты.
<?php function sanitize_my_email($field) { $field = filter_var($field, FILTER_SANITIZE_EMAIL); if (filter_var($field, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } } $to_email = 'name @ company . com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail '; $headers = 'From: noreply @ company. com'; //check if the email address is invalid $secure_check $secure_check = sanitize_my_email($to_email); if ($secure_check == false) { echo "Invalid input"; } else { //send email mail($to_email, $subject, $message, $headers); echo "This email is sent using PHP Mail"; } ?>
Вывод:
Безопасная почта
Электронные письма могут быть перехвачены во время передачи непреднамеренными получателями.
Это может раскрыть содержимое письма непреднамеренным получателям.
Безопасная почта решает эту проблему путем передачи электронной почты через протокол передачи гипертекста Secure (HTTPS).
HTTPS шифрует сообщения перед их отправкой.
Резюме
- Встроенная функция PHP mail () используется для отправки почты из сценариев PHP
- Проверка и санитаризация данных необходимы для отправки защищенной почты.
- Встроенная в PHP функция filter_var () обеспечивает простой в использовании и эффективный способ очистки и проверки данных.