Здравствуйте друзья.
В этом уроке я покажу вам как настроить почту в 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 отправителя'); ?>