| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Сеть > Письмо с вложением |
| Автор: Licentia 20.2.2013, 15:10 |
| Здравствуйте! Отправляю с сайта письмо с фоторафиями. На почту яндекса доходит нормально. А на почту mail.ru приходят вместо фотографий с человечьими именами и разрешением jpg файлы Untitled.bin. Подскажите, с чем это может быть связано? |
| Автор: Aliance 20.2.2013, 16:57 |
| В 14 строчке кода ошибка. |
| Автор: Licentia 20.2.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_]+@[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; ?> |
| Автор: marioadm 6.5.2014, 01:26 |
| Не указано расширение загружаемых объектов Добавлено через 16 секунд 14 строка |