Письмо с вложением

 
0
 
PHP
ava
Licentia | 20.02.2013, 16:10
Здравствуйте!
Отправляю с сайта письмо с фоторафиями. На почту яндекса доходит нормально. А на почту mail.ru приходят вместо фотографий с человечьими именами и разрешением jpg файлы Untitled.bin.
Подскажите, с чем это может быть связано?
Ответы (4)
ava
Aliance | 20.02.2013, 16:57 #
В 14 строчке кода ошибка.
ava
Licentia | 20.02.2013, 22:30 #
Вот код отправки сообщения:
<?
session_start();
$mailto = "[email protected]";
$charset = "windows-1251";
$subject = "Письмо с сайта";
$content = "text/html";
$status="<br>";
if (!empty($_POST))
{
$name = htmlspecialchars(stripslashes($_POST['imko']));
$message = htmlspecialchars(stripslashes($_POST['tikstik']));
$mail = htmlspecialchars(stripslashes($_POST['posta']));
$phone = htmlspecialchars(stripslashes($_POST['phone']));
$picture = "";
if($_POST['res'] == $_SESSION['res'])
{
if(empty($_POST['posta']))
{
$status = "Вы не указали свой E-mail!";
}
elseif (!preg_match("/^[0-9a-z_][email protected][0-9a-z_^\.]+\.[a-z]{2,6}$/i", $mail))
{
$status = "Вы ввели некорректный адрес";
}
else
{
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: \"".$name."\" <".$mail.">\r\n";
$headers .= "Bcc: [email protected]\r\n";
$headers .= "X-Mailer: E-mail from my super-site \r\n";
$sendmessage = "<html><body>
<p><b>E-mail для связи:</b> ".$mail."</p>
<p><b>Сообщение:</b> ".$message."</p>
<p><b>Телефон:</b> ".$phone."</p>
</body></html>";

$paht = array();
$picture = array();
for ( $i=0; $i < count($_FILES['mail_file']); $i++)
{
if (!empty($_FILES['mail_file']['tmp_name'][$i]))
{
$path[$i] = $_FILES['mail_file']['tmp_name'][$i];
$picture[$i] = $_FILES['mail_file']['name'][$i];
}
}
$boundary = "--".md5(uniqid(time()));
$headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$multipart .= "--".$boundary."\n";
$multipart .= "Content-Type: text/html; charset=$charset\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$sendmessage\n\n";

$message_part = '';
$count = count ($path);
if ($count > 0)
{
for ( $i=0; $i < $count; $i++ )
{
$fp = fopen($path[$i],"r");
if (!$fp)
{
print "Файл ".$path[$i]." не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path[$i]));
fclose($fp);
$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 = \"".$picture[$i]."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
}
}


$multipart .= $message_part."--".$boundary."--\n";
if(!mail($mailto, $subject, $multipart, $headers)) $status = "По техническим причинам сообщение не было отправлено. Пожалуйста, попробуйте снова";
else {$status = "Ваше сообщение отправлено! Спасибо!";
$name = "";
$message = "";
$mail = "";
$phone = "";
}
}
} else {$status = "Дан неверный ответ.";}
}
$a = rand(1,10);
$b = rand(1,10);
$_SESSION['res'] = $a + $b;
?>
ava
marioadm | 06.05.2014, 01:26 #
Не указано расширение загружаемых объектов

Добавлено позднее:
14 строка
ava
Aliance | 06.05.2014, 10:24 #
marioadm, что за некропостинг? нужно +1 к сообщениям?
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить