Forum Webscript.Ru

Программирование => PHP => Тема начата: Yuraz от 23 Декабря 2003, 15:43:49

Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Yuraz от 23 Декабря 2003, 15:43:49
Нужно, очень нужно :(
чтобы скрипт резал файлы по частям, и каждую часть высылал отдельным письмом. Резать можно по 500кб, что вполне нормально. А клеить например в TotalCommander, пунктом Собрать файл. Или в чем предложите.
Вот рабочий вариант отсылки файла (страницы и т.п.) целиком. Файл приходит аттачем.



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

$subject = "WWWMail";

// заголовки
$headers = "From: \\n";
$headers .= "Reply-To: \\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\\n";
$headers .= "X-Mailer: PHP4\\n";
$headers .= "X-Priority: 3\\n";
$headers .= "Return-Path: \\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 .= "\\n";
$message .= "\\n";
$message .= "Привет! Лови файл! \\n";

$message .= "\\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: \\n";
$message .= "\\n";

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


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


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

?>



 

на mail.html обычная форма: 1 поле с кнопкой.
Заранее спасибо!!!
Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Макс от 23 Декабря 2003, 16:08:18
хотел бы уточнить.
Ты хочешь узнать как это сделать или хочешь, чтобы тебе написали ?
Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Yuraz от 23 Декабря 2003, 16:11:59
1. Узнать.
2. Если у автора доработки уже будет скрипт, то это и хотелось бы посмотреть.
Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Меняздесьдавнонет от 23 Декабря 2003, 17:18:40
Цитировать
Yuraz:
1. Узнать.

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

Что ты еще хочешь узнать?
Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Макс от 23 Декабря 2003, 17:20:00

$fp = fopen($file, "rb");
while ($data = fread($fp, 500*1024)) {
   $FileContent=chunk_split(base64_encode($data));
   ... // здесь отсылаешь $data
   ... // как в твоем скрипте
}
fclose($fp);
Название: Помогите доработать скрипт отправки файла аттачем с URL по почте!
Отправлено: Yuraz от 24 Декабря 2003, 12:50:52
Макс спасибо, кумекаю теперь, ещё не собрал.