Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Почему код не работает

подскажите почему код не работает
<form action="ff.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Отправить">
</form>
<?php
$to = ' f@ya.ru ';
$subject = 'Новое сообщение';
$message = $_POST['message'];
$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
$file_content = file_get_contents($file);
mail($to, $subject, $message,$file_content);

?>

По дате
По рейтингу
Аватар пользователя
Оракул

поттмучто файл надо прикреплять не так вот просто куском текста а так как того требует почтовый стандарт
примерно так (314зжено у MyRusakov.ru )

123456789101112131415161718192021222324252627
 <?php 
  $filename = "form.txt"; //Имя файла для прикрепления 
  $to = "abc@mail.ru"; //Кому 
  $from = "def@gmail.com"; //От кого 
  $subject = "Test"; //Тема 
  $message = "Текстовое сообщение"; //Текст письма 
  $boundary = "---"; //Разделитель 
  /* Заголовки */ 
  $headers = "From: $from\nReply-To: $from\n"; 
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\""; 
  $body = "--$boundary\n"; 
  /* Присоединяем текстовое сообщение */ 
  $body .= "Content-type: text/html; charset='utf-8'\n"; 
  $body .= "Content-Transfer-Encoding: quoted-printablenn"; 
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n"; 
  $body .= $message."\n"; 
  $body .= "--$boundary\n"; 
  $file = fopen($filename, "r"); //Открываем файл 
  $text = fread($file, filesize($filename)); //Считываем весь файл 
  fclose($file); //Закрываем файл 
  /* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */ 
  $body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n"; 
  $body .= "Content-Transfer-Encoding: base64\n"; 
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n"; 
  $body .= chunk_split(base64_encode($text))."\n"; 
  $body .= "--".$boundary ."--\n"; 
  mail($to, $subject, $body, $headers); //Отправляем письмо 

а лучше всего скачать PHPMailer подключить настроить и через него уже отправлять он и файлы прикрепит как положено и ошибки обработает и говнокодить не придется

Аватар пользователя
Мастер

что именно не работает?

Аватар пользователя
Мудрец

Это у тебя все в одном файле?