Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка на e-mail
 
 автор: Dimka31   (22.05.2008 в 13:59)   письмо автору
 
 

Скрипт ошибок не выдает, не могу понять то ли проблемы хостинга, то ли я где то ошибся, можете потестировать у себя отправляються ли письма

Форма для отправки

   echo "<p><span style='COLOR: blue'><strong><font color='#800000'> Сделать заказ</span></p>";
  echo "<form method=post enctype='multipart/form-data'>";
  echo "<table width=100% cellpadding='3' class='text'>";
  echo "<tr valign='top'><td width='30%'>";
  echo "Контактное лицо:</td><td><input name='name' size=40> <font color='red' size='+1'>*</font><br></td></tr>";
  echo "<tr valign='top'><td>Телефон для обратной связи:</td><td><input name='phone' size=15> <font color='red' size='+1'>*</font></td></tr>";
  echo "<tr valign='top'><td>Электронный адрес:</td><td><input name='mail' size=40></td></tr>";
  echo "<tr valign='top'><td>Размер готовой картины (см):</td><td> <input name='width' size=5> Ширина<br> <input name='height' size=5> Высота</td></tr>";
  echo "<tr valign='top'><td>Обработка или коллаж (кол-во человек):</td><td><input name='collage' size=5></td></tr>";
 
  echo "<tr valign='top'><td>Прикрепить файл:</td><td><input type='file' name='file_1'><br>";
  echo "<input type='file' name='file_2'><br>";
  echo "<input type='file' name='file_3'><br>";
  echo "<input type='file' name='file_4'><br>";
  echo "<input type='file' name='file_5'></td></tr>";
  echo "<tr valign='top'><td>Дополнтельная информация:</td><td><textarea cols=35 rows=4 name='note'></textarea></td></tr></table>";
  echo "<input type='submit' value='Отправить'>";
  echo "</form>";


Файл обработчик


<?php 
  
// проверяем правильности заполнения с помощью регулярного выражения 
  
$picture ""
  
// Если поле выбора вложения не пустое - закачиваем его на сервер 
  
if (!empty($_FILES['file_1']['tmp_name'])) 
  { 
    
// Закачиваем файл 
    
$path $_FILES['file_1']['name']; 
    if (
copy($_FILES['file_1']['tmp_name'], $path)) $picture $path
  } 
  
$thm "Поступил новый заказ";
  
$msg $_POST['name']." (".$_POST['phone'].") ".$_POST['mail']." \r\n"." Ширина: ".$_POST['width']." Высота: ".$_POST['height'];
  if(
$_POST['collage']>0)
  {
    
$msg .= "\r\n Коллаж ".$_POST['collage']." человека(-ек)";
  }
  if(
$_POST['note']!='')
  {
    
$msg .= "\r\n ".$_POST['note'];
  }

// адрес получателя
  
$mail_to 'webjob_wd@mail.ru';


  echo 
"<hr>Текст сообщения ".$msg;
  echo 
"<br>Тема ".$thm;
  echo 
"<br>Кому ".$mail_to."<hr>";  

  
// Отправляем почтовое сообщение 
  
if(empty($picture)) mail($mail_to$thm$msg); 
  else 
send_mail($mail_to$thm$msg$picture); 
  
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
  
function send_mail($mail_to$thema$html$path)   
  { if (
$path) {  
    
$fp fopen($path,"rb");   
    if (!
$fp)   
    { print 
"Cannot open file";   
      exit();   
    }   
    
$file fread($fpfilesize($path));   
    
fclose($fp);   
    }  
    
$name "file.ext"// в этой переменной надо сформировать имя файла (без всякого пути)  
    
$EOL "\r\n"// ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    
$boundary     "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  
    
$headers    "MIME-Version: 1.0;$EOL";   
    
$headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    
$headers   .= "From: address@server.com";  
      
    
$multipart  "--$boundary$EOL";   
    
$multipart .= "Content-Type: text/html; charset=windows-1253$EOL";   
    
$multipart .= "Content-Transfer-Encoding: base64$EOL";   
    
$multipart .= $EOL// раздел между заголовками и телом html-части 
    
$multipart .= chunk_split(base64_encode($html));   

    
$multipart .=  "$EOL--$boundary$EOL";   
    
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   
    
$multipart .= "Content-Transfer-Encoding: base64$EOL";   
    
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   
    
$multipart .= $EOL// раздел между заголовками и телом прикрепленного файла 
    
$multipart .= chunk_split(base64_encode($file));   

    
$multipart .= "$EOL--$boundary--$EOL";   
      
        if(!
mail($mail_to$thema$multipart$headers))   
         {return 
False;           //если не письмо не отправлено
      
}  
    else { 
//// если письмо отправлено
    
return True;  
    }  
  exit;  
  }
?>



Заранее спасибо

   
 
 автор: Dimka31   (22.05.2008 в 15:42)   письмо автору
 
   для: Dimka31   (22.05.2008 в 13:59)
 

что ни у кого не работает?

   
 
 автор: sim5   (22.05.2008 в 16:45)   письмо автору
11.8 Кб
 
   для: Dimka31   (22.05.2008 в 13:59)
 

mail отработает, и если на сервере все в порядке с почтой, то она будет отправлена, но... Вот это:
if(empty($picture)) mail($mail_to, $thm, $msg);
в Outlook будет выглядеть так как показано в прикреплении. Все из-за того, что так как вы отправляете, можно отправлять английский текст, но не русский. И зачем в форме пять полей file, если в скрипте обрабатывается только одно из них?

   
 
 автор: Dimka31   (23.05.2008 в 10:50)   письмо автору
 
   для: sim5   (22.05.2008 в 16:45)
 

Сначала бы сделать чтоб один файл отправлялся, потом доделать чтоб отправлялись и другие...

   
 
 автор: Trianon   (23.05.2008 в 11:31)   письмо автору
 
   для: sim5   (22.05.2008 в 16:45)
 

>Все из-за того, что так как вы отправляете, можно отправлять английский текст, но не русский

Греческий, наверное, тоже потянет :)

   
 
 автор: sim5   (23.05.2008 в 11:34)   письмо автору
 
   для: Trianon   (23.05.2008 в 11:31)
 

Не знаю, не грек, не пробоавл. ))

   
 
 автор: mechanic   (23.05.2008 в 12:01)   письмо автору
 
   для: sim5   (23.05.2008 в 11:34)
 

где наша elenaki, щас подскажет )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования