Привіт, друзі.
У цьому уроці я покажу вам як налаштувати пошту в OpenServer.
Справа в тому, що коли ми тестуємо сайт на локальному сервері, і намагаємося відправити лист через форму зворотного зв'язку, то на пошту сайту (потрібний нам E-Mail) листи не приходять.
Така ж ситуація, коли ми намагаємося реалізувати відправку пошти в PHP. На реальний Email пошта не приходить.
Справа в тому, що за замовчуванням, налаштування OpenServer виставлені так, що всі листи зберігаються в папку userdata / temp / email /. Вони записуються в спеціальний лог-файл, який можна відкрити звичайним блокнотом.
І ось для того, щоб листи зберігалися не в лог-файл, а відправлялись на потрібний нам Email, потрібно змінити налаштування OpenServer. Давайте я покажу вам, де подивитися вже відправлені вами листи в OpenServer, і як зробити так, щоб вони відправлялися по SMTP протоколу.
І так про все по порядку.
- Запускаємо OpenServer;
- Клікаємо по прапорцю програми (іконці в треї) правою кнопкою миші;
- У контекстному меню вибираємо «Налаштування»;
- Переходимо на вкладку «Пошта».
Ось в цьому вікні нам і потрібно буде зробити певні налаштування, щоб пошта, яку ми відправляємо в PHP доставлялася на потрібний Email.
Як подивитися відправлені листи в OpenServer
За замовчуванням, спосіб відправки пошти у нас обраний «Зберігати листи в папку userdata/temp/email/». Давайте перейдемо в цю папку і переконаємося в тому, що відправлені раніше нами листи знаходяться саме в ній. Відкриваємо папку програми OpenServer, в ній є папка userdata, в ній — temp, а в папці temp — знаходиться папка email.
Відкрийте файл, що там знаходиться за допомогою блокнота, і ви переконаєтеся в тому, що відправка листів у вас працює. Просто вони не відправляються на вказаний в PHP email, а зберігаються ось тут.
Як налаштувати відправку пошти в OpenServer по SMTP
Щоб листи реально відправлялися, нам потрібно змінити налаштування OpenServer. Як приклад я буду використовувати обліковий запис Google і відповідно пошту Gmail.
Дуже важливо! Для тестування і розробки сайтів я рекомендую створити окремий акаунт Google (пошту).
І так. Заповнюємо поля у вкладці «Пошта» налаштувань програми OpenServer покроково:
- Вибираємо Спосіб відправки пошти — Відправляти пошту через віддалений SMTP сервер;
- SMTP сервер вказуємо smtp.gmail.com;
- Порт: 465, або 587 (у мене відмінно працює 587);
- Email відправника — це наша реальна пошта Gmail;
- Ім'я користувача — вказуємо ту ж пошту, що і Email відправника;
- Пароль — вказуємо пароль від пошти;
- Шифрування — Авто.
Клікаємо «Зберегти» і у вікні, яке попереджає нас про те, що сервер буде перезапущений, натискаємо ОК.
Начебто все і листи повинні відправлятися по SMTP. Але не все так просто.
Ми налаштували OpenServer, але не Google аккаунт. А в обліковий запис Google за замовчуванням, доступ сторонніх додатків заборонений і тому листи у вас поки все одно не будуть відправлятися.
Нам залишилася сама малість — налаштувати обліковий запис Google і зараз я покажу як це зробити.
Налаштовуємо SMTP сервер від Google
За замовчуванням, в Google з метою забезпечити максимальну безпеку аккаунта, доступ сторонніх додатків відключений. А також, в налаштуваннях пересилання відключений протокол IMAP (доступ до Gmail інших додатків з цього протоколу).
Ось про те, як включити доступ інших додатків по протоколу IMAP до вашої пошти Gmail, а також як дозволити цим програмам доступ до вашого профілю, я зараз і розповім покроково:
- Заходимо в Gmail акаунт і з нього входимо в розділ Налаштування (іконка шестерні в правому верхньому куті).
- Переходимо на вкладку «Пересилання та POP/IMAP» і в блоці «Доступ по протоколу IMAP» вибираємо «Включити IMAP» https://mail.google.com/mail/u/0/?tab=wm1#settings/fwdandpop
- Тиснемо «Зберегти» в самому низу сторінки.
Але і це ще не все.
- Переходимо в наш аккаунт Google https://myaccount.google.com
- Переходимо в розділ «Безпека» https://myaccount.google.com/security
- У блоці «Ненадійні додатки, у яких є доступ до аккаунту» вибираємо «Вкл.»
Ось тепер все. Пошта в OpenServer повністю налаштована і якщо ви відправите в PHP лист, то він буде успішно доставлений на той Email, який ви вкажете.
Відеоурок по даній темі
Ось невеликий приклад відправлення листа в PHP:
<?php mail('email отримувача', 'Тема листа', 'Текст листа', 'From: email відправника'); ?>