Добрый день.
При отправке письма с вложением, оно отлично приходит в 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();
}
}//письмо с вложением
?>
1. SF2015 - 29 Января, 2018 - 08:57:01 - перейти к сообщению
2. Sail - 31 Января, 2018 - 19:52:30 - перейти к сообщению
SF2015, там-же написано, что есть вложенный файл 888.jpg
Или он более одобренных рамблером 20Мб?
"Скрепка" у письма в интерфейсе рамблера присутствует?
Или он более одобренных рамблером 20Мб?
"Скрепка" у письма в интерфейсе рамблера присутствует?