PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
SF2015 Отправлено: 29 Января, 2018 - 08:57:01 • Тема: mail на php • Форум: Вопросы новичков

Ответов: 1
Просмотров: 1381
Добрый день.
При отправке письма с вложением, оно отлично приходит в microsoft outlook 2XXX (2003, 2007 и т.п.) А вот если посмотреть тоже письмо в почте рамблера, то там вложения не видно:

----57eb3ec73431b7e22271e8386959 8ed5 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: Quot-Printed Письмо с сайта xxxx.RU через форму обратной связи.

Обращение ID: 20180128-213942-1517164782.2703
Фамилия: Иванов
Имя: Иван
Отчество: Иванович
Домашний адрес клиента: адрес
Почта клиента: ivanov@ram.ru
Тема вопроса: тема вопроса
Сообщение: сообщение
----57eb3ec73431b7e22271e8386959 8ed5 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename = "888.jpg" MjIyMjIyMjIyMg== ----57eb3ec73431b7e22271e8386959 8ed5--


Вот скрипт:
-------------------------------- -
<?php
$mail_to_g = 'webinfo@xxx.ru';
$mail_from_g = 'webinfo@xxx.ru';
$type = 'html';
$charset = 'UTF-8';


/*
$text1 = $_REQUEST['message'];
$subject = 'xxx.ru';
$replyto_f =$_REQUEST['replyto'];
$replyto_i = $_REQUEST['replyto_i'];
$replyto_o = $_REQUEST['replyto_o'];
$replyto_adr = $_REQUEST['replyto_adr'];
$mail_client = $_REQUEST['mail_client'];
$replyto_tema = $_REQUEST['replyto_tema'];
*/


$text1 = htmlspecialchars(stripslashes($_REQUEST['message']));
$replyto_f = htmlspecialchars(stripslashes($_REQUEST['replyto']));
$replyto_i = htmlspecialchars(stripslashes($_REQUEST['replyto_i']));
$replyto_o = htmlspecialchars(stripslashes($_REQUEST['replyto_o']));
$replyto_adr = htmlspecialchars(stripslashes($_REQUEST['replyto_adr']));
$mail_client = htmlspecialchars(stripslashes($_REQUEST['mail_client']));
$replyto_tema = htmlspecialchars(stripslashes($_REQUEST['replyto_tema']));



$captcha = $_REQUEST['captcha'];
$captcha_validation = $_REQUEST['captcha_validation'];

if ($captcha != $captcha_validation)
{
header('Location: http://xxx.ru/?p=mail_check');
exit();
}


//Фамилия
if (!preg_match('/^([а-яА-ЯЁё \-]+)$/u',$replyto_f))
{

header('Location: http://xxx.ru/?p=mail_check');
exit();
}

//Имя
if (!preg_match('/^([а-яА-ЯЁё \-]+)$/u',$replyto_i))
{

header('Location: http://xxx.ru/?p=mail_check');
exit();
}
//почта клиента
if (!preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i", $mail_client))
{

header('Location: http://xxx.ru/?p=mail_check');
exit();
}

//тема - сообщение и галочка с персональными данными
if ( empty($replyto_tema) or empty($text1) or !isset($_REQUEST['PERSONAL']) )
{
header('Location: http://xxx.ru/?p=mail_check');
exit();
}


$ids=date("Ymd-His-").microtime(true);

$msg = "Письмо с сайта xxx.RU через форму обратной связи.<br><br>";
$msg = $msg."<b>Обращение ID:</b> $ids<br>";
$msg = $msg."<b>Фамилия:</b> $replyto_f<br>";
$msg = $msg."<b>Имя:</b> $replyto_i<br>";
$msg = $msg."<b>Отчество:</b> $replyto_o<br>";
$msg = $msg."<b>Домашний адрес клиента:</b> $replyto_adr<br>";
$msg = $msg."<b>Почта клиента:</b> $mail_client<br>";
$msg = $msg."<b>Тема вопроса:</b> $replyto_tema<br>";
$msg = $msg."<b>Сообщение:</b> $text1<br>";


//echo $msg;




$text1 = '=?utf-8?B?'.base64_encode($text1).'?=';
$replyto_f = '=?utf-8?B?'.base64_encode($replyto_f).'?=';
$replyto_i = '=?utf-8?B?'.base64_encode($replyto_i).'?=';
$replyto_o = '=?utf-8?B?'.base64_encode($replyto_o).'?=';
$replyto_adr = '=?utf-8?B?'.base64_encode($replyto_adr).'?=';
$mail_client = '=?utf-8?B?'.base64_encode($mail_client).'?=';
$replyto_tema = '=?utf-8?B?'.base64_encode($replyto_tema).'?=';

$picture = "";

// Если поле выбора вложения не пустое - закачиваем его на сервер

if (!empty($_FILES['filess']['tmp_name']))

{

// Закачиваем файл

$path = $_FILES['filess']['name'];

if (copy($_FILES['filess']['tmp_name'], $path)) $picture = $path;

}


$thm=$replyto_tema;

$headers = "From: $mail_from_g\r\nReply-to: $mail_to_g\r\nContent-type: text/html; charset=utf-8\r\n";




if(empty($picture))
{
if (!mail($mail_to_g, $thm, $msg, $headers))
{
header('Location: http://xxxx.ru/?p=mail_error');
exit();
}
else
{
header('Location: http://xxx.ru/?p=mail_ok');
exit();
}
}
else //письмо свложением...................... ................................ .....
{
$fp = fopen($picture,"r");

if (!$fp)

{

//Файл не может быть прочитан"
header('Location: http://xxx.ru/?p=mail_error');
exit();

}

$file = fread($fp, filesize($picture));

fclose($fp);



$boundary = "--".md5(uniqid(time())); // генерируем разделитель

$headers = "From: $mail_from_g\r\nReply-to: $mail_to_g\r\nContent-type: text/html; charset=utf-8\r\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 .= "$msg\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($mail_to_g, $thm, $multipart, $headers))

{
header('Location: http://xxx.ru/?p=mail_error');
exit();

}
else
{
header('Location: http://xxx.ru/?p=mail_ok');
exit();
}

}//письмо с вложением
?>
SF2015 Отправлено: 26 Января, 2018 - 11:55:33 • Тема: пустой $_FILES • Форум: Вопросы новичков

Ответов: 1
Просмотров: 300
Подскажите что делать
CODE (html):
скопировать код в буфер обмена
  1. <form action="inc/mailer.php" method="POST" enctype="multipart/form-data>
  2.     ....
  3.     <div class="form-group">
  4.         <label class="sr-only" for="filess">filess</label>
  5.         <input type="file" name="filess" id="filess"  class="form-control" placeholder="Прикрепить файл:" >
  6.     </div>
  7. </form>

я сейчас уперся в такой момент- отправка файла на сервер
это не выполняется $_FILES пустая.
PHP:
PHP:
скопировать код в буфер обмена
  1. if (!empty($_FILES['filess']['tmp_name'])) {
  2.     ....
  3. }


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $mail_to = 'sdf@xxxx.ru';
  4. $type = 'html';
  5. $charset = 'UTF-8';//'windows-1251';
  6. $text1='';
  7.  
  8. include('smtp-func.php');
  9.  
  10. if ( !empty($_REQUEST['replyto']) and !empty($_REQUEST['replyto_i']) and !empty($_REQUEST['mail_from']) and !empty($_REQUEST['replyto_tema']) and !empty($_REQUEST['message']) and isset($_REQUEST['PERSONAL']) )
  11. {
  12.     $text1 = $_REQUEST['message'];
  13.     $subject =  'xxx.ru';
  14.  
  15.     $replyto_f = $_REQUEST['replyto'];
  16.     $replyto_i = $_REQUEST['replyto_i'];
  17.     $replyto_o = $_REQUEST['replyto_o'];
  18.     $replyto_adr = $_REQUEST['replyto_adr'];
  19.     $mail_from = $_REQUEST['mail_from'];
  20.     $replyto_tema = $_REQUEST['replyto_tema'];
  21.     $filess = $_REQUEST['filess'];
  22.  
  23.     $message = "Письмо с сайта xxxx.RU через форму обратной связи.<br><br>";
  24.     $message = $message."Фамилия: $replyto_f <br>";
  25.     $message = $message."Имя: $replyto_i <br>";
  26.     $message = $message."Отчество: $replyto_o <br>";
  27.     $message = $message."Адрес: $replyto_adr <br>";
  28.     $message = $message."Тема вопроса: $replyto_tema <br>";
  29.     $message = $message."Сообщение: $text1 <br>";
  30.  
  31.     $headers = "To: \"Administrator\" <$mail_to>\r\n".
  32.         "From: <$mail_from>\r\n".
  33.         "Reply-To: $replyto\r\n".
  34.         "Content-Type: text/$type; charset=\"$charset\"\r\n";
  35.  
  36.     $picture = "";
  37.     // Если поле выбора вложения не пустое - закачиваем его на сервер
  38.     //////////////  if (!empty($_REQUEST['filess']))  так условие выполняется
  39.     if (!empty($_FILES['filess']['tmp_name'])) {
  40.         // Закачиваем файл
  41.         $path = $_FILES['filess']['name'];
  42.  
  43.         if (copy($_FILES['filess']['tmp_name'], $path)) {
  44.             $picture = $path;
  45.         }
  46.     }
  47.  
  48.     if (empty($picture)) {
  49.         $sended = smtpmail($mail_to, $subject, $message, $headers);
  50.     } else {
  51.         $sended = smtpmail_pic($mail_to, $subject, $message, $headers, $picture);
  52.     }
  53.  
  54.     //$sended = smtpmail($mail_to, $subject, $message, $headers);
  55.  
  56.     echo "Ваше сообщение успешно отправлено!<Br> Вы получите ответ в ближайшее время<Br> $back";
  57.     exit;
  58. } else {
  59.     echo "Для отправки сообщения заполните обязательные поля поля! $back";
  60.     exit;
  61. }
  62.  
  63. ?>

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB