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

Форум PHP

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

 

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

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

тема: Отправка письма с вложением функцией mail()
 
 автор: ALEXIT   (29.02.2012 в 12:58)   письмо автору
 
 

Добрый день. Воспользовавшись примером отправки сообщения с вложением с этого сайта пытаюсь написать отдельный небольшой скрипт для отправки сообщения с заранее заданным текстом и конкретным файлом на сервере. Но вот проблема, куда именно вставить для нормального отображения текст самого письма? Толи я не замечаю чего, толи армия последние мозги выбила(


<?php 

  $mail_to 
'asd@asd.ru';
  
$thema 'Theme';
  
$msg 'Message...';
  
$path 'kran.pdf';
  
$name 'kran.pdf';
  
$address 'company@mail.com';


  
// 
  
if (send_mail($mail_to$thema$msg$path$name$address)) echo 'TRUE!'; else echo 'FALSE';
  
  
  
//
  
function send_mail($mail_to$thema$msg$path$name$address)   
  { if (
$path) {  
    
$fp fopen($path,"rb");   
    if (!
$fp)   
    { print 
"Cannot open file";   
      exit();   
    }   
    
$file fread($fpfilesize($path));   
    
fclose($fp);   
    }  
    
$EOL "\r\n";
    
$boundary     "--$msg".md5(uniqid(time()));
    
$headers    "MIME-Version: 1.0;$EOL";   
    
$headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    
$headers   .= "From: $address";
      
    
$multipart  "--$boundary$EOL";   
    
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";   
    
$multipart .= "Content-Transfer-Encoding: base64$EOL";   
    
$multipart .= $EOL;
    
$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;  
  }
?>

  Ответить  
 
 автор: Valick   (29.02.2012 в 13:18)   письмо автору
 
   для: ALEXIT   (29.02.2012 в 12:58)
 

$msg = 'Message...';
в место Message и пихайте свой текст :)
соответсвенно $thema = 'Theme'; - этот переменная содержащая название темы

  Ответить  
 
 автор: ALEXIT   (29.02.2012 в 13:21)   письмо автору
 
   для: Valick   (29.02.2012 в 13:18)
 

Не не, не все так просто :) Эти переменные я сам и написал для примера... Суть в том, что в функцию эта $msg только передана, но там не задействуется, не знаю формата полного этой функции...

Нашел косяк у себя в коде, в строке
$boundary     = "--$msg".md5(uniqid(time())); 
переменной $msg не должно быть...

  Ответить  
 
 автор: Valick   (29.02.2012 в 13:26)   письмо автору
 
   для: ALEXIT   (29.02.2012 в 13:21)
 

$multipart .= chunk_split(base64_encode($html));
$html - это и есть письмо
пр пробуйте заменить на
$multipart .= chunk_split(base64_encode($msg));

  Ответить  
 
 автор: ALEXIT   (29.02.2012 в 13:39)   письмо автору
 
   для: Valick   (29.02.2012 в 13:26)
 

Спасибо, заработало!)

Точно не заметил( Да еще и чуть забыл методы передачи данных в функции...

А в исходном скрипте отсюда http://softtime.ru/scripts/mailattach.php путаницу сделали с переменными для неопытных. Передаются в функцию одни переменные, а запускается она с другими, но данные одни...

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

  Ответить  
Rambler's Top100
вверх

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