Автор Тема: Помогите доработать скрипт отправки файла аттачем с URL по почте!  (Прочитано 3071 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Нужно, очень нужно :(
чтобы скрипт резал файлы по частям, и каждую часть высылал отдельным письмом. Резать можно по 500кб, что вполне нормально. А клеить например в TotalCommander, пунктом Собрать файл. Или в чем предложите.
Вот рабочий вариант отсылки файла (страницы и т.п.) целиком. Файл приходит аттачем.


<?php

 $var_mail 
"xxx@xxx.ru";
 
$var_file htmlSpecialChars($HTTP_POST_VARS[\'file\'], ENT_QUOTES);

$subject = "WWWMail";

// заголовки
$headers = "From: <xxx@mail.ru>\\n";
$headers .= "Reply-To: <xxx@mail.ru>\\n";
$headers .= "MIME-Version: 1.0\\n";

// в одну строчку
$headers .= "Content-Type: multipart/related;type=\\"multipart/alternative\\"; boundary=\\"----=MIME_BOUNDRY_main_message\\"\\n";

//
$headers .= "X-Sender: Programm<xxx@mail.ru>\\n";
$headers .= "X-Mailer: PHP4\\n";
$headers .= "X-Priority: 3\\n";
$headers .= "Return-Path: <xxx@mail.ru>\\n";
$headers .= "This is a multi-part message in MIME format.\\n";
$headers .= "------=MIME_BOUNDRY_main_message \\n";
$headers .= "Content-Type: multipart/alternative; boundary=\\"----=MIME_BOUNDRY_message_parts\\"\\n";

//просто текст
$message = "------=MIME_BOUNDRY_message_parts\\n";
$message .= "Content-Type: text/plain; charset=\\"windows-1251\\"\\n";
$message .= "Content-Transfer-Encoding: quoted-printable\\n";
$message .= "\\n";

// здеся
$message .= "Привет! Лови файл! \\n";
$message .= "\\n";

// html
$message .= "------=MIME_BOUNDRY_message_parts\\n";
$message .= "Content-Type: text/html;\\n    charset=\\"windows-1251\\"\\n";
$message .= "Content-Transfer-Encoding: quoted-printable\\n";
$message .= "\\n";

// здеся
$message .= "<!DOCTYPE HTML PUBLIC \\"-//W3C//DTD HTML 4.0 Transitional//EN\\">\\n";
$message .= "<HTML><BODY>\\n";
$message .= "Привет! Лови файл! \\n";

$message .= "</BODY></HTML>\\n";
$message .= "\\n";

// конец
$message .= "------=MIME_BOUNDRY_message_parts--\\n";
$message .= "\\n";

$AttmFile = $var_file;

$patharray = explode ("/", $AttmFile);
$FileName=$patharray[count($patharray)-1];


$fd=fopen ($AttmFile, "r");

 while (!feof ($fd)) {

    $line = fgets ($fd, 1024);
    $FileContent .= $line;

    }

 fclose ($fd);

 $FileContent=chunk_split(base64_encode($FileContent));


// добавляем атачменты
$message .= "------=MIME_BOUNDRY_main_message\\n";
$message .= "Content-Type: application/octetstream; \\n name=\\"$FileName\\"\\n";
$message .= "Content-Transfer-Encoding: base64\\n";
$message .= "Content-ID: <some_attach>\\n";
$message .= "\\n";

$message .= $FileContent;
$message .= "\\n";


//конец сообщения
$message .= "------=MIME_BOUNDRY_main_message--\\n";


  $f = mail($var_mail, $subject, $message, $headers);

?>

<SCRIPT>
alert(\'Файл отправлен.\');
location.href = \'mail.html\'; </script>



на mail.html обычная форма: 1 поле с кнопкой.
Заранее спасибо!!!

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
хотел бы уточнить.
Ты хочешь узнать как это сделать или хочешь, чтобы тебе написали ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
1. Узнать.
2. Если у автора доработки уже будет скрипт, то это и хотелось бы посмотреть.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Цитировать
Yuraz:
1. Узнать.

"режет" в РНР команда [p]substr[/p]

Что ты еще хочешь узнать?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля

$fp 
fopen($file"rb");
while (
$data fread($fp500*1024)) {
   
$FileContent=chunk_split(base64_encode($data));
   ... 
// здесь отсылаешь $data
   
... // как в твоем скрипте
}
fclose($fp);
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Макс спасибо, кумекаю теперь, ещё не собрал.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28