Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: mail на php
Форумы портала PHP.SU » » Вопросы новичков » mail на php

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

1. SF2015 - 29 Января, 2018 - 08:57:01 - перейти к сообщению
Добрый день.
При отправке письма с вложением, оно отлично приходит в 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();
}

}//письмо с вложением
?>
2. Sail - 31 Января, 2018 - 19:52:30 - перейти к сообщению
SF2015, там-же написано, что есть вложенный файл 888.jpg
Или он более одобренных рамблером 20Мб?
"Скрепка" у письма в интерфейсе рамблера присутствует?

 

Powered by ExBB FM 1.0 RC1