Как сделать форму отправки сообщений на сайте

Как сделать форму отправки сообщений на сайте

От автора: приветствую вас, друзья. Данная статья будет продолжением статьи, в которой мы реализовывали отправку формы на email с помощью PHP функции mail(). В этой статье мы узнаем, как сделать форму отправки сообщений с сайта через SMTP популярных почтовых сервисов. Приступим?.

Исходные файлы текущей статьи вы можете скачать по ссылке.

Вы можете задать вполне логичный вопрос: а чем не устраивает функция mail(), которая замечательно работает на локальном сервере? Все дело в том, что в настоящее время работоспособность данной функции на реальном хостинге стоит под большим вопросом. Порой хостер просто отключает отправку писем со своего сервера, часто письма просто не доходят до адресата и попадают в спам.

Именно по этим причинам и рекомендуется использовать для отправки писем сторонние SMTP сторонних популярных сервисов: gmail.com, yandex.ru, mail.ru и т.п. Ну а отправить письмо нам помогут различные библиотеки, например замечательная библиотека PHPMailer. Эта библиотека достаточно проста в использовании и универсальна. PHPMailer позволяет отправлять не только простые письма, но и письма в формате HTML, письма с вложениями, в общем, библиотека умеет все, что необходимо для отправки сообщений с сайта.

Начнем со скачивания архива с библиотекой и подключения его к обработчику формы, у нас это файл mail.php:

require 'phpmailer/PHPMailerAutoload.php';

Теперь нам необходимо создать объект подключаемого класса библиотеки и произвести его необходимую настройку. Здесь нам потребуется реальный почтовый ящик, который будет использован для отправки писем. Я использую тестовый почтовый ящик, зарегистрированный в mail.ru. По запросу в Гугле mail.ru smtp можно найти необходимые настройки, которые мы используем. Точно таким же образом мы можем найти настройки smtp других почтовых сервисов.

Итоговый код обработчика будет выглядеть следующим образом:

<?php

$message = "Имя: {$_POST['name']}<br>"; // добавляем имя в текст
$message .= "Телефон: {$_POST['phone']}"; // добавляем телефон в текст

require 'phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;
$mail->isSMTP();

$mail->Host = 'smtp.mail.ru';
$mail->SMTPAuth = true;
$mail->Username = 'mailer_test_2014'; // логин от вашей почты
$mail->Password = '!mailer_2014!'; // пароль от почтового ящика
$mail->SMTPSecure = 'ssl';
$mail->Port = '465';
$mail->CharSet = 'UTF-8';
$mail->From = 'mailer_test_2014@mail.ru';
$mail->FromName = 'Андрей';
$mail->addAddress('matroskin8@mail.ru', 'Андрей');
$mail->isHTML(true);
$mail->Subject = 'Заказ обратного звонка';
$mail->Body = $message;

if( $mail->send() ){
	echo '<p style="color: green;">Ваше сообщение отправлено</p>';
}else{
	echo '<p style="color: red;">Ошибка!</p>';
}

Здесь я не буду подробно останавливаться на настройках, которые мы использовали, для этого вы можете посмотреть наш видеоурок Библиотека PHPMailer. Отправка почты через SMTP. Проверим, работает ли отправка писем. В форме мы видим сообщение о том, что письмо было успешно отправлено:

Зайдем в почтовый ящик и убедимся в этом:

Как видим, письмо успешно доставлено адресату, все работает. Ну а на этом текущую статью мы завершаем. Дополнительно по работе с формами вы можете посмотреть этот урок. Удачи!

Проверка формы без перезагрузки с помощью JavaScript

Прямо сейчас посмотрите курс по организации динамической работы с формами!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree