Чат PHP-разработчиков
Логические задачи
Отправка email в PHP на OpenServer через SMTP

Отправка email в PHP: настройка OpenServer

В этом уроке мы научимся отправлять почту средствами PHP в рамках сервера OpenServer. О том, чем хорош этот сервер и о том, как его установить, я писал в статье "Установка и настройка OpenServer".

Начнем с того, что в PHP отправить email – очень просто. Для этого используется функция mail(). Чтобы отправить письмо нужно указать адрес получателя, тему письма и текст сообщения, а также специальный заголовок From, с указанием отправителя вот так:

<?php
mail('receiver@example.com', 'Тема письма', 'Текст письма', 'From: sender@example.com');

Однако, вот незадача – если этот код выполнить на хостинге, то письмо будет отправлено и придёт получателю, а вот если мы используем OpenServer, то по умолчанию все наши письма будут просто записываться в специальный лог-файл. Убедиться в этом вы можете, заглянув во вкладку «Почта» настроек OpenServer.

Путь до логов с почтой

И действительно, перейдя по этому пути, мы увидим наше письмо.

Логи писем

Но как же быть, если мы хотим на самом деле отправлять письма? Для этого нам нужен SMTP-сервер. Если кто не знает – электронная почта отправляется по специальному протоколу SMTP, а принимается по протоколу POP3. SMTP-сервер можно поднять самому, привязать к нему свой домен, и использовать свои адреса вроде x@myproject.ru. Мы же в рамках данного урока будем использовать SMTP-сервер Google.

Первым делом вам нужно создать новый аккаунт Google – просто перейдите в режиме инкогнито на https://gmail.com/ и создайте новую учетную запись. Я создал для примера kek777cheburek@gmail.com.

После этого переходим в настройки OpenServer и заполняем поля:

  • способ отправки почты: отправлять почту через удаленный SMTP сервер
  • SMTP сервер: smtp.gmail.com
  • порт: 465
  • email отправителя: почта, которую вы зарегали ранее
  • имя пользователя: та же почта
  • пароль: пароль от почты
  • шифрование: авто

Настройки SMTP в OpenServer

После этого жмем кнопку «Сохранить» и перезапускаем сервер.

Изменяем наш код:

<?php
mail('тут@ваша.почта', 'Тема письма', 'Текст письма', 'From: kek777cheburek@gmail.com');

После чего запускаем скрипт и проверяем свой ящик.

Входящее письмо

Мне письмо пришло мгновенно, так как в моём случае и отправитель и получатель были на gmail.com. Если у вас по-другому - возможно, придется подождать.

Стоит отметить, что данная инструкция является универсальной и данные настройки можно задать не только в OpenServer, но и в любом другом месте, где требуется конфигурация SMTP-сервера.

Присоединяйтесь к нам в ВКонтакте и в Facebook, чтобы не пропустить новые уроки. А также вступайте в наш чат PHP-разработчиков в Telegram.
Об авторе
Generic placeholder image
Артём Ивашкевич
Занимаюсь программированием более трех лет, работаю над проектами с миллионной посещаемостью. В свободное время обучаю программированию на PHP других людей, потому что мне это нравится. Если вы интересуетесь темой IT и хотели бы стать разработчиком, рекомендую прочитать статью о том, как я стал программистом.
Читайте также
Комментарии (0)