Php навчання відправка пошти
Дуже часто на сайтах виникає необхідність відправити лист Администартор або клієнту. Зробити це можна двома способами: на стороні клієнта і на стороні сервера.
Нас же цікавить другий спосіб - відправка поштових повідомлень засобами PHP. В общем-то, для цього в PHP предусмотреда єдина функція - mail (). але ось способів використання її кілька. Прототип функції mail () виглядає наступним чином:
При відправці пошти необхідно вказати як-мінімум три параметри: одержувача, тему і текст повідомлення.
Тема повідомлення "subject" - це звичайна рядок. Єдине обмеження - рядок не повинна містити символів перекладу рядка або повернення каретки ( "\ n" і "\ r").
Тіло повідомлення "message" - це текст, який ви хочете відправити одержувачу. Рядки повідомлення повинні розділятися перекладом рядка в Unix-стилі (LF), а кожен рядок не повинна бути довше сімдесяти символів. Якщо ці вимоги не виконуються - сервер може заборонити відправку листа.
Розширені дані - це блок даних, призначений для програми, яка буде відправляти пошту. Ці дані в деяких випадках дозволяють здійснити тонке налаштування програми для конкретних потреб. Але в звичайній практиці цей елемент не використовується.
Отже, мінімальний скрипт відправки повідомлення виглядає так:
За замовчуванням, функція mail () відправляє повідомлення в текстовому вигляді. Це означає, що якщо ви в текст додасте HTML-теги, то вони будуть сприйняті як звичайний текст без гіпертекстової розмітки. Для того, щоб відправити HTML-повідомлення, знову скористаємося розширеними заголовками:
Цей скрипт відправить лист в HTML-форматі двох одержувачам, а так же вишле копії в архів і в контрольний ящик.
Запустити відправку листів можна двома способами - в результаті дій користувача (наприклад, після обробки даних форми), або за допомогою запланованого завдання. Перший випадок очевидний - користувач відсилає форму на сервер, там відбувається обробка даних і Вам за вказаною адресою відправляються результати обробки форми (підтвердження реєстрації, рахунки до оплати, вміст замовлення або щось ще).
Додатково можна відзначити, що спробувати відправку пошти з вашого локального сервера у вас не вийде. У більшості випадків з метою безпеки функції пошти не налаштовані і їх треба прописати вручну. Вказати параметри можна або в файлі php.ini, або безпосередньо в коді перед викликом функції mail ():
Крім того, настійно рекомендую поставити локальний SMTP-сервер, наприклад, PersonalSMTP. Ця утиліта розповсюджується безкоштовно, проста в установці та налаштування, але при цьому дозволяє налагоджувати відправку листів навіть при відсутності підключення до Інтернет. При використанні PersonalSMTP в конфігурації за замовчуванням використовується сервер "localhost" і порт 15025, отже перед викликом функції mail () необхідно додати рядки: