Отправка почты на php

При разработке сайта часто приходится сталкиваться с необходимостью отправки почты средствами php. В любой организации связь с посетителями происходит либо по почте либо в комментариях к заметкам. Отправка почты происходит на странице обратной связи, через специальную контактную html форму. С помощью контактных форм, пользователь может отправить свое предложение или отзыв на электронную почту владельцу сайта.

Я покажу как можно запросто, использовать mail() функцию PHP, для отправки данных из html формы на любой e-mail адрес.

Для отправки почты достаточно вызвать функцию mail(), в которую нужно передать 4 переменные:

mail($to, $subject, $message, $headers);
  • $to - адрес электронной почты, на который будет отправлено письмо
  • $subject - тема письма
  • $message - сам текст письма
  • $headers - дополнительные заголовки, такие как: адрес с которого осуществляется отправка, дополнительные адреса отправки и т.д.

Файл с формой: form.php

Тут я создал простую html форму, которая делает отправку данных на текущий url-адрес.

<!DOCTYPE html>
<html>
<head>
<title>Обратная связь из формы на e-mail</title>
<link href="style.css" rel="stylesheet">
</head>
<body>
	<div class="container">
	<!-- #feedback -->
		<div id="feedback">
		<!-- .head -->
		<div class="head">
			<h3>Форма обратной связи</h3>
			<p>Можете оставить свой отзыв через форму обратной связи!</p>
		</div>
		<!-- end .head -->
		<!-- form -->
		<form action="#" id="form" method="post" name="form">
			<input name="vname" placeholder="Ваше имя" type="text" value="">
			<input name="vemail" placeholder="Ваш Email" type="text" value="">
			<input name="sub" placeholder="Тема" type="text" value="">
			<label>Ваше предложение или отзыв</label>
			<textarea name="msg" placeholder="Введите текст сообщения..."></textarea>
			<input id="send" name="submit" type="submit" value="Отправить сообщение">
		</form>
		<!-- end form -->
		<h3><?php include "action_form.php"?></h3>
		</div>
	<!-- end #feedback -->
	</div>
</body>
</html>

Ниже под формой подключаем PHP файл "action_form.php", принимающий данные формы:

Все поля формы обязательны к заполнению, по нажатию кнопки "Отправить сообщение", происходит отправка письма.

<?php
if(isset($_POST["submit"])){
	// проверяем чтобы поля не были пустыми..
	if($_POST["vname"] == "" || $_POST["vemail"] == "" || $_POST["sub"] == "" || $_POST["msg"] == ""){
		echo "Ошибка: Заполните все поля..";
	}else{
		// Проверяем e-mail отправителя на соответствие формату
		$email = $_POST['vemail'];
		$email = filter_var($email, FILTER_SANITIZE_EMAIL);
		$email = filter_var($email, FILTER_VALIDATE_EMAIL);
		if (!$email){
			echo "Ошибка: Не верный формат Email адреса";
		}
		else{
			$subject = $_POST['sub'];
			$message = $_POST['msg'];
			$headers = 'From:'. $email2 . "\r\n"; // Адрес отправителя
			$headers .= 'Cc:'. $email2 . "\r\n"; // копия 
			
			// Если длина строки больше 70 символов делаем перенос
			$message = wordwrap($message, 70);
			
			// Отправляем почту php mail() функцией
			if(mail("your_mail@bk.ru", $subject, $message, $headers))
				echo "Ваше письмо отправлено! Спасибо за ваш отзыв!";
			else	
				echo "Ошибка при отправке письма!";
		}
	}
}
?>

CSS файл: style.css

Подключаем файл со стилями.

@import "http://fonts.googleapis.com/css?family=Raleway";
/*----------------------------------------------
CSS Settings For HTML Div ExactCenter
------------------------------------------------*/
h3,p,label {
text-align:center;
font-family:'Raleway',sans-serif;
color:#006400
}
h2 {
font-family:'Raleway',sans-serif
}
input {
width:100%;
margin-bottom:20px;
padding:5px;
height:30px;
box-shadow:1px 1px 12px gray;
border-radius:3px;
border:none
}
textarea {
width:100%;
height:80px;
margin-top:10px;
padding:5px;
box-shadow:1px 1px 12px gray;
border-radius:3px
}
#send {
width:103%;
height:45px;
margin-top:40px;
border-radius:3px;
background-color:#cd853f;
border:1px solid #fff;
color:#fff;
font-family:'Raleway',sans-serif;
font-size:18px
}
div#feedback {
text-align:center;
height:520px;
width:330px;
padding:20px 25px 20px 15px;
background-color:#f3f3f3;
border-radius:3px;
border:1px solid #cd853f;
font-family:'Raleway',sans-serif;
float:left
}
.container {
width:960px;
margin:40px auto
}

На этом все, до новых волнующих встреч. В следующий раз расскажу как отправить форму без перезагрузки страницы через AJAX.



Похожие статьи:
↑ Наверх ↑
  • Комментарии

Прокомментировать

Подписаться, не комментируя