<?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 = "Наименование организации";
$subject = "Заполнена контактная форма";
$message = "<br /> <b>Фамилия Имя Отчество:</b> $nameFF <br /> <b>Электронная почта:</b> $mailFF <br /> <b>Адрес места жительства:</b> $addressFF <br /> <b>Cообщение:</b> $messFF <br /> <b>Дополнительные документы и (или) сведения:</b> $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 "Ваше сообщение успешно отправлено, спасибо!";
}
?>
<table>
<span style="font-size: 18px;"><b><p>Электронное обращение для граждан</p></b></span>
<p>Если вы хотите получить ответы на интересующие Вас вопросы, заполните эту форму. Мы свяжемся с вами в ближайшее время.</p>
<p><b>Пожалуйста, заполните все обязательные поля:</p></b>
<tr>
<form method="post" action="KMail.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="name" value="" required/>
<div class="error"> </div>
</div>
<div class="inp">
<p><b>Ваш E-mail:</b></p>
<input class="inp-f" type="text" name="mail" value="" required/>
<div class="error"> </div>
</div>
<div class="inp">
<p><b>Адрес места жительства (места пребывания) / Адрас месца жыхарства (месца знаходжання):</b></p>
<input class="inp-f" type="text" name="address" value=""required />
<div class="error"> </div>
</div>
<p><b>Cообщение / Паведамленне:</b></p>
<div class="inp"><textarea required style="margin: 0px; width: 421px; height: 185px;" name="mess"></textarea>
<div class="error"> </div>
</div>
<b><p>Дополнительные документы и (или) сведения /Дадатковыя дакументы і (або) звесткі:</p></b>
<p>(Разрешенные расширения файлов: jpg,.gif,.jpeg,.png,.doc,.txt,.pdf,.xls,.docx,.xlsx,.rar)</p>
<p>Максимальный размер файла 5 MB.</p>
<input type="file" name="mail_file[]" maxlength="64">
</div>
<div class="inp"><br /><input class="btn" title="Отправить" name="submit" type="submit" value="ОТПРАВИТЬ" /></div>
<p> </p>
</form></td>
</tr>
</tbody>
</table>
<?php
error_reporting(-1);
class KMail
{
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>';
}
}
echo '<pre>' . print_r($_POST, true) . '</pre>';
echo '<pre>' . print_r($_FILES, true) . '</pre>';
function clear_data($str)
{
return trim(strip_tags($str));
}
$name = clear_data($_POST['name']);
$mail = clear_data($_POST['mail']);
$address = clear_data($_POST['address']);
$mess = 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 KMail(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();
?>
<?php
class KMail
{
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>';
}
}
echo '<pre>' . print_r($_POST, true) . '</pre>';
echo '<pre>' . print_r($_FILES, true) . '</pre>';
function clear_data($str)
{
return trim(strip_tags($str));
}
$name = clear_data($_POST['name']);
$mail = clear_data($_POST['mail']);
$address = clear_data($_POST['address']);
$mess = 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 KMail(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();
?>
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
echo '<pre>' . print_r($_FILES, true) . '</pre>';
function clear_data($str)
{
return trim(strip_tags($str));
}
$name = clear_data($_POST['name']);
$mail = clear_data($_POST['mail']);
$address = clear_data($_POST['address']);
$mess = 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 KMail(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();
<?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();