Как отправить электронное письмо с помощью функции PHP mail()
Что такое почта PHP?
PHP-почта — это встроенная функция PHP, которая используется для отправки электронных писем с помощью PHP-скриптов.
Функция почты принимает следующие параметры:
- Тема
- Сообщение
- Адреса электронной почты CC или BC
- Это экономичный способ уведомления пользователей о важных событиях.
- Позвольте пользователям связываться с вами по электронной почте, предоставив форму обратной связи на веб-сайте, который отправляет предоставленный контент по электронной почте.
- Разработчики могут использовать его для получения системных ошибок по электронной почте.
- Вы можете использовать его для отправки электронных писем подписчикам новостной рассылки.
- Вы можете использовать его для отправки ссылок для сброса пароля пользователям, которые забыли свои пароли.
- Вы можете использовать его для отправки ссылок активации/подтверждения по электронной почте. Это полезно при регистрации пользователей и проверке их адресов электронной почты.
Почему/когда использовать почту PHP
Отправка почты с помощью PHP
Функция почты PHP имеет следующий базовый синтаксис.
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
ВОТ,
- «$to_email_address» — адрес электронной почты получателя почты.
- «$subject» — тема электронного письма.
- «$message» — это сообщение, которое необходимо отправить.
- «[$headers]» не является обязательным, его можно использовать для включения такой информации, как CC, BCC.
- CC — это аббревиатура от «копия». Он используется, когда вы хотите отправить копию заинтересованному лицу, т. е. электронное письмо с жалобой, отправленное в компанию, также может быть отправлено в виде копии на доску жалоб.
- BCC — это аббревиатура от «слепая копия». Это похоже на СС. Адреса электронной почты, включенные в раздел «СК», не будут показаны другим получателям.
Простой Mail Transmission Протокол (SMTP)
PHP-почтовая программа использует Simple Mail Transmission Протокол (SMTP) для отправки почты.
На размещенном сервере настройки SMTP уже были бы установлены.
Настройки почты SMTP можно настроить из файла «php.ini» в папке установки PHP.
Настройка параметров SMTP на локальном хосте. Предполагая, что вы используете xampp в Windows, найдите «php.ini» в каталоге «C:\xampp\php».
- Откройте его с помощью блокнота или любого текстового редактора. В этом примере мы будем использовать блокнот. Нажмите на меню редактирования
- Нажмите меню «Найти…».
- Появится диалоговое меню поиска
- Нажмите кнопку «Найти дальше».
- Найдите записи
- [функция почты]
- ; ХАМПП: Не удаляйте столбец с запятой, если вы хотите работать с SMTP-сервером, например Mercury
- ; SMTP = локальный хост
- ; smtp_port = 25
- Удалите точки с запятой перед SMTP и smtp_port и установите SMTP на свой smtp сервер и порт на ваш SMTP-порт. Ваши настройки должны выглядеть следующим образом
- SMTP = smtp.example.com
- смтп_порт = 25
- Внимание настройки SMTP можно получить у вашего провайдера веб-хостинга.
- Если сервер требует аутентификации, добавьте следующие строки.
- auth_username = example_username@example.com
- auth_password = пример_пароля
- Сохраните новые изменения.
- Restart Apache сервера.
PHP Mail Пример
Давайте теперь рассмотрим пример отправки простого письма.
<?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) возвращает info@domain.com.
- FILTER_SANITIZE_URL – он удаляет недопустимые символы из URL-адресов. http://www.example@.comé возвращает >http://www.example@.com
- FILTER_SANITIZE_STRING – удаляет теги из строковых значений. я смелый становится смелым.
В приведенном ниже коде используется пользовательская функция для отправки защищенной почты.
<?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"; } ?>
Вывод:
Безопасный Mail
Электронные письма могут быть перехвачены во время передачи непреднамеренными получателями.
Это может привести к тому, что содержимое электронного письма станет доступным непредусмотренным получателям.
Безопасная почта решает эту проблему, передавая электронные письма через защищенный протокол передачи гипертекста (HTTPS).
HTTPS шифрует сообщения перед их отправкой.
Резюме
- The PHP встроенная функция mail() используется для отправки почты из PHP-скриптов
- Проверки проверки и очистки данных необходимы для отправки безопасной почты.
- Встроенная функция PHP filter_var() обеспечивает простой в использовании и эффективный способ очистки и проверки данных.