Отправка email в PHP: настройка OpenServer
В этом уроке мы научимся отправлять почту средствами 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 отправителя: почта, которую вы зарегали ранее
- имя пользователя: та же почта
- пароль: пароль от почты
- шифрование: авто
После этого жмем кнопку «Сохранить» и перезапускаем сервер.
Изменяем наш код:
<?php
mail('тут@ваша.почта', 'Тема письма', 'Текст письма', 'From: [email protected]');
После чего запускаем скрипт и проверяем свой ящик.
Мне письмо пришло мгновенно, так как в моём случае и отправитель и получатель были на gmail.com. Если у вас по-другому - возможно, придется подождать.
Стоит отметить, что данная инструкция является универсальной и данные настройки можно задать не только в OpenServer, но и в любом другом месте, где требуется конфигурация SMTP-сервера.
Если возникают проблемы с гуглопочтой и письмо почему-то не отправляется, почитайте комментарии. В частности может помочь вот это решение.
Комментарии