<?php
class phpmail
{
private $bound;
private $header;
private $subject = '(No subject)';
private $adress = [];
private $body;
public function __construct($text)
{
$this->addBodyMessage($text);
$this->bound();
}
private function sendMailUtf8($adress, $subject, $message, $header)
{
return mail($adress, '=?UTF-8?B?' . base64_encode($subject) . '?=', $message,
'MIME-Version: 1.0' . PHP_EOL . $header);
}
public function send()
{
if (count($this->adress) === 0) {
throw new \Exception('Отсутствует адресат');
}
$this->getHeader();
foreach ($this->adress as $adress) {
$this->sendMailUtf8($adress, $this->getSubject(), $this->getBody(), $this->getHeader());
}
}
public function addAdress($mail)
{
$this->adress[] = $mail;
return $this;
}
private function addBodyMessage($text)
{
$this->body .= '--' . $this->bound() . PHP_EOL .
'Content-Type: text/plain; charset="UTF-8"' . PHP_EOL .
'Content-Disposition: inline' . PHP_EOL .
'Content-Transfer-Encoding: base64' . PHP_EOL . PHP_EOL .
chunk_split(base64_encode($text)) . PHP_EOL;
}
public function addFile($fileName, $fileStream)
{
$this->body .= PHP_EOL . '--' . $this->bound() . PHP_EOL .
'Content-Type: application/octet-stream; name="' . $fileName . '"' . PHP_EOL .
'Content-Disposition: attachment;' . PHP_EOL .
' filename="' . $fileName . '"' . PHP_EOL .
'Content-Transfer-Encoding: base64' . PHP_EOL . PHP_EOL . chunk_split(base64_encode($fileStream));
return $this;
}
private function endBody()
{
return '--' . $this->bound() . '--';
}
private function getBody()
{
return $this->body . $this->endBody();
}
private function bound()
{
if (!$this->bound) {
$this->bound = '_=_Multipart_Boundary_' . substr(md5(uniqid()), 0, 8);
}
return $this->bound;
}
public function setSubject($subject)
{
if ($subject) {
$this->subject = $subject;
}
return $this;
}
private function getSubject()
{
return $this->subject;
}
private function getHeader()
{
if (!$this->header) {
$this->header = 'Content-Type: multipart/mixed; boundary="' . $this->bound() . '"' . PHP_EOL . 'X-Mailer: PHP' . PHP_EOL . 'Reply-To: No reply' . PHP_EOL;
}
return $this->header;
}
public function debug()
{
echo '<pre>' . print_r($this, true) . '</pre>';
}
}
?>
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
echo '<pre>' . print_r($_FILES, true) . '</pre>';
function clear_data($str)
{
return trim(strip_tags($str));
}
$nameFF = clear_data($_POST['name']);
$mailFF = clear_data($_POST['mail']);
$addressFF = clear_data($_POST['address']);
$messFF = clear_data($_POST['mess']);
$message = "<br /> <b>Фамилия Имя Отчество:</b> $name <br /> <b>Электронная почта:</b> $mail <br /> <b>Адрес места жительства:</b> $address <br /> <b>Cообщение:</b> $mess <br /> <b>Дополнительные документы и (или) сведения:</b>";
$subject = "Заполнена контактная форма";
$to = "почта";
$test = new phpmail(message);
$exts = ['jpg', 'gif', 'jpeg', 'png', 'doc', 'txt', 'gif', 'pdf', 'docx', 'xlsx','rar']; // добавить по вкусу
$test->addAdress($to);
foreach ($_FILES['mail_file']['tmp_name'] as $key => $file) {
$info = pathinfo(file);
if (filesize($file) <= 5242880 && in_array($info['extension'], $exts)) {
$test->addFile($_FILES['mail_file']['name'][$key], file_get_contents($file));
} else {
// тут можно написать что файл не канает
}
}
$test->setSubject($subject)
$test->send();
#$test->debug();
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
<table>
<span style="font-size: 18px;"><b><p>Электронное обращение для граждан</p></b></span>
<p>Если вы хотите получить ответы на интересующие Вас вопросы, заполните эту форму. Мы свяжемся с вами в ближайшее время.</p>
<p><b>Пожалуйста, заполните все обязательные поля:</p></b>
<tr>
<form method="post" action="phMailer.php" enctype='multipart/form-data'>
<div id="form3">
<div class="inp">
<p><b>Фамилия, имя, отчество (если таковое имеется) / Прозвiшча, iмя, iмя па-бацьку :</b></p>
<input class="inp-f" type="text" name="nameFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<p><b>Ваш E-mail:</b></p>
<input class="inp-f" type="text" name="mailFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<p><b>Адрес места жительства (места пребывания) / Адрас месца жыхарства (месца знаходжання):</b></p>
<input class="inp-f" type="text" name="addressFF" value="" />
<div class="error"> </div>
</div>
<p><b>Cообщение / Паведамленне:</b></p>
<div class="inp"><textarea style="margin: 0px; width: 421px; height: 185px;" name="messFF"></textarea>
<div class="error"> </div>
</div>
<b><p>Дополнительные документы и (или) сведения /Дадатковыя дакументы і (або) звесткі:</p></b>
<input type="file" name="mail_file[]" maxlength="64">
</div>
<div class="inp"><br /><input class="btn" title="Отправить" type="submit" value="ОТПРАВИТЬ" /></div>
<p> </p>
</form></td>
</tr>
</tbody>
</table>
<?php
if (isset($_POST['nameFF'])) {$nameFF = $_POST['nameFF'];}
if (isset($_POST['mailFF'])) {$mailFF = $_POST['mailFF'];}
if (isset($_POST['addressFF'])) {$addressFF = $_POST['addressFF'];}
if (isset($_POST['messFF'])) {$messFF = $_POST['messFF'];}
if (isset($_POST['mail_file'])) {$mail_file = $_POST['mail_file'];}
$picture = "";
function send_mail($to, $subject, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'utf-8'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $subject, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
function clear_data($vvod)
{
return trim(strip_tags($vvod));
}
$nameFF = clear_data($_POST['nameFF']);
$mailFF = clear_data($_POST['mailFF']);
$addressFF = clear_data($_POST['addressFF']);
$messFF = clear_data($_POST['messFF']);
$mail_file = clear_data($_POST['mail_file']);
$to = "Почта";// Переменная to равна переменной email, т.е. файл будет отправляться на тот адрес, который будет вбит в форму.
$headers = "Content-type: text/plain; charset = utf-8";
$subject = "Заполнена контактная форма";
$message = "Фамилия Имя Отчество: $nameFF \nЭлектронная почта: $mailFF \nАдрес места жительства: $addressFF \nCообщение: $messFF \nДополнительные документы и (или) сведения $mail_file";
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
if(empty($picture))
{
$send = mail ($to, $subject, $message, $headers);
if ($send == "true")
{
echo "Спасибо за отправку Вашего сообщения.<br>\n";
}
else
{
echo "Сообщение не отправлено. Приносим свои извинения. Видимо сервер не может обработать ваше сообщение, скопируйте этот email почта и отправьте из своей почты. ";
}
}
else
{
send_mail($to, $subject, $message, $picture);
echo "Письмо отправлено!";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?
$picture = "";
$picture2 = "";
$picture3 = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']) && !empty($_FILES['mail_file2']['tmp_name']) && !empty($_FILES['mail_file3']['tmp_name']))
{
// Закачиваем файл
$path = "zav/".$_FILES['mail_file']['name'];
$path2 = "zav/".$_FILES['mail_file2']['name'];
$path3 = "zav/".$_FILES['mail_file3']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
if (copy($_FILES['mail_file2']['tmp_name'], $path2)) $picture2 = $path2;
if (copy($_FILES['mail_file3']['tmp_name'], $path3)) $picture3 = $path3;
}
function clear_data($vvod)
{
return trim(strip_tags($vvod));
}
$fam = clear_data($_POST['fam']);
$name = clear_data($_POST['name']);
$otch = clear_data($_POST['otch']);
$date = clear_data($_POST['date']);
$snils = clear_data($_POST['snils']);
$email = clear_data($_POST['email']);
$adres = clear_data($_POST['adres']);
$thm = "Заявка для ответственного по БДД";
$msg = "<p><font face=Verdana, Arial, Helvetica, sans-serif size=+1 color=#003366>Информация о поступившей заявке:</font></p>
<p><font face=Verdana, Arial, Helvetica, sans-serif size=-1 color=#333333>
Фамилия: $fam <br> \nИмя: $name <br> \nОтчетство: $otch <br> \nДата рождения: $date <br>\nСНИЛС: $snils <br> \nЭлектронная почта: $email <br> \nАдрес по месту жительства: $adres";
$mail_to = "anya.prid@mail.ru";
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture, $picture2,$picture3);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path, $path2, $path3)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$fp2 = fopen($path2,"r");
if (!$fp2)
{
print "Файл $path2 не может быть прочитан";
exit();
}
$file2 = fread($fp2, filesize($path2));
fclose($fp2);
$fp3 = fopen($path3,"r");
if (!$fp3)
{
print "Файл $path3 не может быть прочитан";
exit();
}
$file3 = fread($fp3, filesize($path3));
fclose($fp3);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'utf-8';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$message_part .= "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path2."\"\n\n";
$message_part .= chunk_split(base64_encode($file2))."\n";
$message_part .= "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path3."\"\n\n";
$message_part .= chunk_split(base64_encode($file3))."\n";
$multipart .= $message_part."--$boundary--\n";
// if(!mail($to, $thm, $multipart, $headers))
// {
// echo "К сожалению, письмо не отправлено";
// exit();
// }
// }
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
if(empty($picture))
{
$send = mail ($to, $thm, $msg, $headers);
if ($send == "true")
{
echo "Спасибо за отправку Вашего сообщения.<br>\n";
echo "<a href=index.html>Вернуться на страницу с описанием</a><br>\n";
}
else
{
echo "Сообщение не отправлено. Приносим свои извинения. Видимо сервер не может обработать ваше сообщение, скопируйте этот email Vasia@mail.ru и отправьте из своей почты. ";
}
}
else
{
send_mail($to, $thm, $msg, $picture, $picture2, $picture3);
echo "Заявка отправлена!";
echo "<a href=mailtest.php>Вернуться назад</a>";
}
exit();
?>
</head>
</html>
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = $config['smtp_host'];
$mail->Port = $config['smtp_port'];
$mail->SMTPAuth = true;
$mail->Username = $config['smtp_username'];
$mail->Password = $config['smtp_password'];
$mail->setFrom($config['smtp_username'], $config['smtp_from']);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body = $message;
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table>
<span style="font-size: 18px;"><b><p>Электронное обращение для граждан</p></b></span>
<p>Если вы хотите получить ответы на интересующие Вас вопросы, заполните эту форму. Мы свяжемся с вами в ближайшее время.</p>
<p><b>Пожалуйста, заполните все обязательные поля:</p></b>
<tr>
<td><form method="POST" action="http://ujrep.by/contacts1.php" name="contactFF" enctype="multipart/form-data">
<div id="form1">
<div class="inp">
<b><p>Фамилия, имя, отчество (если таковое имеется) / Прозвiшча, iмя, iмя па-бацьку :</p></b>
<input class="inp-f" type="text" name="nameFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<b><p>Ваш E-mail:</p></b>
<input class="inp-f" type="text" name="mailFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<b><p>Адрес места жительства (места пребывания) / Адрас месца жыхарства (месца знаходжання):</p></b>
<input class="inp-f" type="text" name="addressFF" value="" />
<div class="error"> </div>
</div>
<b><p>Cообщение / Паведамленне:</p>
<div class="inp"><textarea style="margin: 0px; width: 421px; height: 185px;" name="messFF"></textarea>
<div class="error"> </div>
</div>
<b><p>Дополнительные документы и (или) сведения /Дадатковыя дакументы і (або) звесткі:</p></b>
<div class="inp"><input id="file" type="file" name="fileFF" size="100000000" /></div>
</div>
<div class="inp"><br /><input class="btn" title="Отправить" type="submit" value="ОТПРАВИТЬ" /></div>
<p> </p>
</form></td>
</tr>
</tbody>
</table>
</form>
</body>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" id="form">
<table>
<span style="font-size: 18px;"><b><p>Электронное обращение для граждан</p></b></span>
<p>Если вы хотите получить ответы на интересующие Вас вопросы, заполните эту форму. Мы свяжемся с вами в ближайшее время.</p>
<p><b>Пожалуйста, заполните все обязательные поля:</p></b>
<tr>
<div id="form1">
<div class="inp">
<b><p>Фамилия, имя, отчество (если таковое имеется) / Прозвiшча, iмя, iмя па-бацьку :</p></b>
<input class="inp-f" type="text" name="nameFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<b><p>Ваш E-mail:</p></b>
<input class="inp-f" type="text" name="mailFF" value="" />
<div class="error"> </div>
</div>
<div class="inp">
<b><p>Адрес места жительства (места пребывания) / Адрас месца жыхарства (месца знаходжання):</p></b>
<input class="inp-f" type="text" name="addressFF" value="" />
<div class="error"> </div>
</div>
<b><p>Cообщение / Паведамленне:</p>
<div class="inp"><textarea style="margin: 0px; width: 421px; height: 185px;" name="messFF"></textarea>
<div class="error"> </div>
</div>
<b><p>Дополнительные документы и (или) сведения /Дадатковыя дакументы і (або) звесткі:</p></b>
<div class="inp"><input id="file" type="file" name="fileFF" size="100000000" /></div>
</div>
<div class="inp"><br /><input class="btn" title="Отправить" type="submit" value="ОТПРАВИТЬ" /></div>
<p> </p>
</form></td>
</tr>
</tbody>
</table>
</form>
<script>
$(function(){
'use strict';
$('#form').on('submit', function(e){
e.preventDefault();
var fd = new FormData( this );
$.ajax({
url: 'send.php',
type: 'POST',
contentType: false,
processData: false,
data: fd,
success: function(msg){
if(msg == 'ok') {
alert('Отправлено')
} else {
alert('Ошибка')
}
}
});
});
});
</script>
</body>