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

Форум PHP

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

 

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

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

тема: Присоединение файла к почтовому сообщению
 
 автор: gore   (23.09.2004 в 12:22)   письмо автору
 
 

Какую шапку надо использовать, чтобы через функцию mail() отправить аттач?

<?php mail("addr@host.ru""Subject""Message""????");?>


или может еще есть варианты?

   
 
 автор: cheops   (23.09.2004 в 12:45)   письмо автору
 
   для: gore   (23.09.2004 в 12:22)
 

У нас Кузнецов М.В. спец по почте, и совершенно недавно мне удалось из него извлечь ответ на этот вопрос :))) Выглядел он примерно так:
<?php
  
function send_mail($to$thm$html$path)
  {
    
$fp fopen($path,"r");
    if (!
$fp)
    {
      print 
"Файл $path не может быть прочитан";
      exit();
    } 
    
$file fread($fpfilesize($path));
    
fclose($fp);
    
$path substr($path,12);
  
    
$boundary "--".md5(uniqid(time())); // генерируем разделитель
    
$headers .= "MIME-Version: 1.0\n"
    
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"
    
$multipart .= "--$boundary\n"
    
//$kod='windows-1251';
    
$kod='koi8-r';
    
$multipart .= "Content-Type: text/html; charset=$kod\n"
    
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"
    
$multipart .= "$html\n\n"

    
$message_part ""
    
$message_part .= "Content-Type: application/octet-stream"
    
$message_part .= "; file_name = \"$path\"\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 .= "--$boundary\n".$message_part."--$boundary--\n";

    if(!
mail($to$thm$multipart$headers))
    {
      echo 
"К сожалению, письмо не отправлено";
      exit();
    }
  }
?>

Параметры функции следующие:
$to - e-mail
$thm - тема сообщения
$html - текст сообщение в формате HTML
$path - путь к прикрепляемому файлу

   
 
 автор: gore   (23.09.2004 в 13:15)   письмо автору
 
   для: gore   (23.09.2004 в 12:22)
 

есть ли где документы RFC на русском языке?

   
 
 автор: cheops   (23.09.2004 в 14:00)   письмо автору
 
   для: gore   (23.09.2004 в 13:15)
 

Практически нет, очень они уж муторно написаны - мало охотников переводить...

   
 
 автор: gwest   (25.04.2005 в 14:30)   письмо автору
 
   для: cheops   (23.09.2004 в 14:00)
 

Чтобы отправить сообщение нужно подключать sendmail?
И $path=".../file.csv"; так нужно указывать путь к файлу?

   
Rambler's Top100
вверх

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