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

Форум PHP

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

 

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

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

тема: Глючит код отправки почтового сообщения с вложением!
 
 автор: ADmexture   (19.02.2007 в 19:00)   письмо автору
 
 

Помогите пожалуйста.

Это обработчик формы, присылает письмо с вложенным файлом, по крайней мере так задумывалось.

Короче, дело в том, что файл на сервер загружается, а вот письмо не приходит :((

Что делать?, люди умные, подскажите)


<?php


switch($select)
{
        case 
"diagnoz":
        echo 
'<p>Text1</p>';
        break;

        case 
"organizacii_diagnostiki":
        echo 
'<p>Text2</p>';
        break;

        case 
"oplata_diagnostiki":
        echo 
'<p>Text3</p>';
        break;
}

  
$_POST['fiop'] = htmlspecialchars(stripslashes($_POST['fiop']));
  
$_POST['fiod'] = htmlspecialchars(stripslashes($_POST['fiod']));
  
$_POST['email'] = htmlspecialchars(stripslashes($_POST['email']));
  
$_POST['pol'] = htmlspecialchars(stripslashes($_POST['pol']));
  
$_POST['year'] = htmlspecialchars(stripslashes($_POST['year']));
  
$_POST['pochta'] = htmlspecialchars(stripslashes($_POST['pochta']));
  
$_POST['money'] = htmlspecialchars(stripslashes($_POST['money']));
  
$_POST['tel'] = htmlspecialchars(stripslashes($_POST['tel']));
  
$picture "";
  
  
  
$fiop=$HTTP_POST_VARS['fiop'];
  
$fiod=$HTTP_POST_VARS['fiod'];
  
$email=$HTTP_POST_VARS['email'];
  
$pol=$HTTP_POST_VARS['pol'];
  
$year=$HTTP_POST_VARS['year'];
  
$pochta=$HTTP_POST_VARS['pochta'];
  
$money=$HTTP_POST_VARS['money'];
  
$tel=$HTTP_POST_VARS['tel'];
  

  if (!empty(
$_FILES['mail_file']['tmp_name']))
  {
  

    
$path $_FILES['mail_file']['name'];
    if (
copy($_FILES['mail_file']['tmp_name'], $path)) $picture $path;
  }
  
$thm $_POST['select'];
  
$msg 'Text4:  ' .$fiop."\n"
               
.'<br>Text5:  ' .$pol."\n"
               
.'<br>Text6:  ' .$year."\n"
               
.'<br>Text7:  '.$fiod."\n"
               
.'<br>Text8: ' .$pochta."\n"
               
.'<br>Text9:  ' .$tel."\n"
               
.'<br>E-mail: ' .$email."\n";
  
$mail_to "ad_mexture@mail.ru";
  
  if(empty(
$picture)) mail($mail_to$thm$msg);
  else 
send_mail($mail_to$thm$msg$picture);
  
  function 
send_mail($to$thm$html$path)
  {
    
$fp fopen($path,"r");
    if (!
$fp)
    {
      print 
"Файл $path не может быть прочитан";
      exit();
    }
    
$file fread($fpfilesize($path));
    
fclose($fp);

    
$boundary "--".md5(uniqid(time())); 
    
$headers .= "MIME-Version: 1.0\n";
    
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
    
$multipart .= "--$boundary\n";
    
$kod 'windows-1251';
    
$multipart .= "Content-Type: text/html; charset=$kod\n";
    
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
    
$multipart .= "$html\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($to$thm$multipart$headers))
    {
      echo 
"К сожелению письмо не отправлено :(";
      exit();
    }
  }
?>

   
 
 автор: cheops   (19.02.2007 в 19:05)   письмо автору
 
   для: ADmexture   (19.02.2007 в 19:00)
 

Вы можете воспользоваться приложением http://www.softtime.ru/scripts/mailattach.php, которое 100% работает.

   
 
 автор: Trianon   (19.02.2007 в 19:09)   письмо автору
 
   для: cheops   (19.02.2007 в 19:05)
 


$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to'])); 
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";

Вы могли бы и исправить эту дрянь в "стопроцентно работающем скрипте", если ссылаетесь на него с упорством, достойным лучшего применения.

   
 
 автор: cheops   (19.02.2007 в 19:22)   письмо автору
 
   для: Trianon   (19.02.2007 в 19:09)
 

Исправлено.

http://www.softtime.ru/scripts/mailattach.php

   
 
 автор: ADmexture   (19.02.2007 в 19:32)   письмо автору
 
   для: cheops   (19.02.2007 в 19:22)
 

Я Вас правильно понял, $thema или $thm?


// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
  function send_mail($mail_to, $thema, $html, $path) 



И еще вопросик, что это за строка?


 $name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)  

   
 
 автор: ddhvvn   (19.02.2007 в 19:33)   письмо автору
 
   для: cheops   (19.02.2007 в 19:22)
 

Стоп, а можно узнать, что в этом не нравится?

   
 
 автор: Trianon   (19.02.2007 в 19:43)   письмо автору
 
   для: ddhvvn   (19.02.2007 в 19:33)
 

Это, видимо, вопрос ко мне.
Не нравится, когда в поля почтового сообщения попадают искаженные значения,
(в прошедшем варианте искаженные функциями htmlspecialchars и stripslashes (при выключенных magic quotes)
Не нравится, когда в поле Content-Transfer-Encoding попадала строка, которой нет в спецификации MIME.


Касательно того, что сейчас - мне тоже не нравится.
Не нравится, что $EOL нужно подбирать опытным путем между "\r\n" и "\n" .
Это стоит оговорить в коментарии.
Но ничего с этим поделать не могу.

Ну и вопрос искажений полей остался....
.....
И еще коробит, что мой ник упомянули, а elenaki (этот вариант рожден общими нашими усилиями) - нет....

   
 
 автор: cheops   (19.02.2007 в 21:37)   письмо автору
 
   для: Trianon   (19.02.2007 в 19:43)
 

Не угодишь :))), исправлено.

http://www.softtime.ru/scripts/mailattach.php

   
 
 автор: ADmexture   (24.02.2007 в 15:28)   письмо автору
 
   для: cheops   (19.02.2007 в 21:37)
 

Мда, че то, ни че, не работает, Ваш 100%-ик, не отправляет письмо, ;(( Просто пустой экран и все, а есть у кого-нибудь другой код отправки?

   
 
 автор: cheops   (25.02.2007 в 00:55)   письмо автору
 
   для: ADmexture   (24.02.2007 в 15:28)
 

У вас письма без вложения отправляются?

   
Rambler's Top100
вверх

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