Функція mail PHP: опис, особливості застосування

Функція mail PHP: опис, особливості застосування

Створення веб-сайту може стати початком великого проекту, а вибір правильної технології зворотного зв 'язку з клієнтом - ключ до успіху. Розробники інтернет-ресурсів часто використовують функцію 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.

Перед початком використання програми знадобиться наступне:

  1. Веб-хостинг.
  2. Обліковий запис електронної пошти.
  3. Включена функція PHP Mail.
  4. Увімкнена функція SMTP.
  5. Домен з запису Hostinger MX.

Mail у PHP дозволяє надсилати електронну пошту за допомогою локальної програми sendmail. Кожен раз, коли користувач запускає сервіс пошти, він викликає цю локальну програму, зазвичай налаштовувану системним адміністратором. Ви можете увімкнути або вимкнути цю функцію в розділі "Електронна пошта" - > "Розділ керування поштовою службою".

PHPMailer - популярна бібліотека, яка підтримує надсилання пошти через функцію PHP Mail або SMTP.

Алгоритм роботи:

  1. Для використання PHPMailer з Hostinger SMTP спочатку необхідно створити ідентифікатор у розділі "Обліковий запис електронної пошти" на панелі веб-хостингу. У користувача буде чотири поля: ім 'я користувача облікового запису електронної пошти, пароль, SMTP-хост, порт SMTP.
  2. Після цього починають установку PHPMailer. Один з простих способів зробити це - використовувати Composer, який попередньо інтегрований в плани загального хостингу, тому підключаються через SSH і виконують наступну команду: cd public_html.
  3. Далі запускають: composer requires phpmailer і чекають кілька хвилин, поки установка завершиться і PHPMailer з 'явиться в створеному каталозі постачальників. Для доставки використовується SMTP. Цей рядок імпортує клас PHPMailer у глобальний простір імен і включає різні бібліотеки.
  4. Надсилають повідомлення HTML. Його вміст буде взято з файлу message.html, розташованого в тому ж каталозі. Це дозволяє форматувати текст і дає велику функціональність порівняно зі звичайними текстовими повідомленнями.

Запуск скрипту

PHPMailer пропонує користувачеві додаткові функції, які можна спробувати в офіційному репозиторії GitHub. Також, якщо він використовує WordPress, то може легко створити контактну форму за допомогою плагінів.

Використовують PHPMailer не тільки для надсилання повідомлень. Можна створити контактну форму, де відвідувачі або користувачі зв 'язуються з сайтом. Нижче наведено кінцевий результат створення форми.


Порядок запуску скрипту:

  1. Створюють файл testphpmailer.php і заповнюють поля SMTP, які були отримані раніше.
  2. Виконують скрипт, ввівши YourDomain.com/testphpmailer.php у браузері, з 'явиться повідомлення.
  3. Як тільки користувач відправить його, то отримає підтвердження, що вміст буде доставлено в скриньку електронної пошти, вказану в полі Address.
  4. Якщо контактна форма PHPMailer не працює, для перевірки функції Mail PHP додають наступний рядок, щоб дізнатися причину проблеми: $ mail-> SMTPDebug = 2.

Усунення помилок

PHPMailer - досить простий інструмент для освоєння. Але час від часу можуть виникати помилки, і тоді функція Mail PHP не працює.

Поширені проблеми під час надсилання пошти:

  1. Адресу відправника відхилено - помилка означає, що сервер не зміг перевірити справжність, використовуючи надані дані. Щоб виправити її, аналізують заголовки from і переконуються, що вони відповідають існуючій поштовій скриньці. Після усунення скрипт почне виконуватися.
  2. Gmail не може підтвердити, що example.com надіслав повідомлення - попередження при тестуванні поштового скрипту PHP. Означає, що запис SPF не включено, адреса електронної пошти не існує або не належить користувачеві.
  3. Збої DNS - часто розглядаються як тайм-аути з 'єднання: "Тимчасовий збій у роздільній здатності імені", "Не вдалося дозволити хост", "Збій getaddrinfo" або подібні помилки.
  4. Переспрямування брандмауера. Це пов 'язано з Google, і якщо користувач бачить щось на зразок імені провайдера, то існують помилки аутентифікації і перевірки сертифіката TLS.
  5. Блокування 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:

  1. Мова повністю безкоштовна і відкрита.
  2. Дуже низька крива навчання.
  3. Середовища розробки швидко і легко налаштовуються.
  4. Просте розгортання: пакунки з інтеграцією PHP повністю відновлюються.
  5. Легкий доступ до баз даних.
  6. Дуже велика спільнота.

Технологія PHP цікава, вона необхідна для вирішення багатьох з найбільш затребуваних завдань, пов 'язаних з відправкою електронної пошти і використанням вкладень.