PDA

Просмотр полной версии : Отправка файлов на Email


Ali_MiX
23.12.2007, 11:08
доброе время суток
у меня такая штука нужен скрипт который отправляет файлы на mail что то типа такого http://www.tcompressor.ru/Files-by-Email/
у меня когда то что то такое было потом удалил из за ненадобности.

DIAgen
23.12.2007, 11:17
Простая отправка письма с атачментов, в нэте есть тоговые решения и классы для все этого, ну если ты хочешь что бы у тебя так же было как на http://www.tcompressor.ru/Files-by-Email/ то тебе прийдется выложить $ что бы тебе его написали:)

Ali_MiX
23.12.2007, 11:31
у меня был простой, пишешь файл и жмешь кнопку отправить и всё проверяешь свою почту

Isis
25.12.2007, 03:35
<table width=1 border=0>

<form action='mail.php' enctype='multipart/form-data' method='post'>



<tr><td width='50%'>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr>

<tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr>

<tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td>

<tr><td width=50%>Photo:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr>

</tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr>

</form>

</table> >

<?php
if(empty($_POST['mail_to'])) exit("Введите адрес получателя");

// проверяем правильности заполнения с помощью регулярного выражения

if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com");

$picture = "";

// Если поле выбора вложения не пустое - закачиваем его на сервер

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

{

// Закачиваем файл

$path = $_FILES['mail_file']['name'];

if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;

}

$thm = $_POST['mail_subject'];

$msg = $_POST['mail_msg'];

$mail_to = $_POST['mail_to'];

// Отправляем почтовое сообщение

if(empty($picture)) mail($mail_to, $thm, $msg);

else send_mail($mail_to, $thm, $msg, $picture);

// Вспомогательная функция для отправки почтового сообщения с вложением

function send_mail($mail_to, $thema, $html, $path)

{ if ($path) {

$fp = fopen($path,"rb");

if (!$fp)

{ print "Cannot open file";

exit();

}

$file = fread($fp, filesize($path));

fclose($fp);

}

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

$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём

$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.

$headers = "MIME-Version: 1.0;$EOL";

$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";

$headers .= "From: address@server.com";



$multipart = "--$boundary$EOL";

$multipart .= "Content-Type: text/html; charset=windows-1253$EOL";

$multipart .= "Content-Transfer-Encoding: base64$EOL";

$multipart .= $EOL; // раздел между заголовками и телом html-части

$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;

}

?>

Isis
25.12.2007, 03:46
http://captcha.ru/breakings/

Ali_MiX
25.12.2007, 11:55
Спасибо Isis
Но тут немного не то, там сам скрипт отправляет файл на почту а не с моего момпа