Цвет

Отправка email сообщений PHP

99₽ 129₽

Категории:

phpemail

В этом гайде мы увидим как отправлять email сообщения через PHP.

Для локального сервера мы будем использовать XAMPP, в качестве текстового редактора VSCode.

Так же есть некоторые дополнительные параметры файлов PHP и настройки, чтобы отправлять сообщения на почту. Переходим к ним.

Для начала нам понадобится почта gmail от google. Если у вас таковой нет, заведите.

Далее подключи двух этапную верификацию. Она нужна для того, чтобы использовать SMTP сервер Google. Именно благодаря ему мы и сможем отправлять сообщение по email.

Далее переходим к файлам xampp

Найдите файл php.ini по адресу xampp/php/php.ini

Здесь нужно убрать точку с запятой и добавить значения для следующих строчек

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = name@gmail.com
sendmail_path = "\"E:\xampp\sendmail\sendmail.exe\" -t"

Далее переходим в файл xampp\sendmail\sendmail.ini

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
auth_username=name@gmail.com
auth_password=xxxx xxxx xxxx xxxx

В поле auth_password нужно вписать специальный пароль app password. Чтобы его создать , нужно зайти на страницу профиля Google -> Security (Безопасность) и в поиске ввести app password и нажать. Тут вы сможете создать такой пароль

Предварительная настройка готова, сейчас мы создадим небольшой код отправки текста из тега textarea с помощью кнопки с именем btn.

Для начала, создадим базовый каркас

<html>
   <head>
   </head>
   <body>
   </body>
</html>

После этого, создадим немного стилей для нашей формы.

<html>
   <head>
     <style>
       form{
         margin: 200px 0 0 0;
         text-align: center;
       }
       textarea[name="text"]{
         width: 700px;
         height: 150px;
         font-size: 20px;
         padding: 20px;
         text-align: center;
       }
       input[name="btn"]{
         font-size: 20px;
       }
     </style>
   </head>

Теперь перейдем к основной части. Для начала, по классике создаём фору, с method="post" и action="index.php". Кнопку и textarea обернём в тег p, для стиля

<body>
   <form action="index.php" method="post">
     <p><textarea name="text"></textarea></p>
     <p><input name="btn" type="submit" value="Отправить"></p>
   </form>
</body>

Теперь перейдём к написанию php кода. После формы проверяем нажата ли кнопка и проверяем написано ли что-то в поле с именем text

<?php
   if(isset($_POST['btn'])){
     if(isset($_POST['text']) && $_POST['text']!=""){

     }
   }
?>

Мы будем использовать встроенную функцию mail()

Она принимает 4 аргумента:

1. email - почта на которую отправится сообщение
2. subject - тема сообщения
3. body - тело сообщения. Здесь можно писать html код
4. headers - заголовки страницы.

Теперь заполняем данные

if(isset($_POST['text']) && $_POST['text']!=""){
     $email = "name@gmail.com";
     $subject = "Тестовое сообщение";
     $body = "<html>
     <head>
     </head>
     <body>
     <div style='font-size: 17px;background-color: #e6e6e6; width: 380px; height: 180px; margin: 10px 0 0 10px;'>";
     $body .= $_POST['text'];
     $body .= "</div></body></html>";
     $headers = "MIME-Version: 1.0" . "\r\n";
     $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
     // More headers
     $headers .= "From: YouName <name@gmail.com>";
}

Не забудьте поменять имя в переменной $email (куда отправляется) и $headers. В квадратных скобках пишется ваш email, а показанное имя будет YouName.

Осталось только передать наш данные функции mail() и вывести соответствующее сообщение при успехе или ошибке

if (mail($email, $subject, $body, $headers)) {
     echo '<h3 style="width: 100%; text-align: center;">Письмо отправлено на адрес ' . $email . '</h3>';
} else {
     echo '<h3 style="width: 100%; text-align: center;">Временные неполадки при отправке письма на почту.</h3>';
}

Вот и всё