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

23.09.2018 в 11:27
47941
+147

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

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

<?php
mail('[email protected]', 'Тема письма', 'Текст письма', 'From: [email protected]');

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

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

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

Логи писем

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

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

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

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

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

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

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

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

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

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

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

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

Если возникают проблемы с гуглопочтой и письмо почему-то не отправляется, почитайте комментарии. В частности может помочь вот это решение.

loader
23.09.2018 в 11:27
47941
+147
Комментарии
К этому посту больше нельзя оставлять новые комментарии
Логические задачи с собеседований