
Эксперт
   
Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад
Репутация: 23 Всего: 50
|
А у меня работает: Код | <? include('mail.class.php'); if(isset($_POST['send'])) { if(isset($_FILES['image'])) {
$md5 = md5(microtime()); $bigimg = "/home/web/www/data/{$md5}.jpg";
move_uploaded_file($_FILES['image']['tmp_name'], $bigimg);
} $mail = new Mail; // Инициализируем класс. $mail->from = '$mal'; // От кого $mail->to = '[email protected]'; // Кому $mail->subject = 'Новый архив'; // Тема сообщения $mail->body = $msg="<table><tr><td>Факультет</td><td>$fc</td><td>Курс</td><td>$kr</td><td>Семестр</td><td>$sm</td><td>Дисциплина</td><td>$dp</td><td>Преподаватель</td><td>$pr</td><td>Пpимечание</td><td>$pm</td><td>$bigimg</td></tr></table>"; // Само сообщение. <img src="$bigimg"> будет ссылаться на приаттаченные файлы. $mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний. $mail->add_attachment($bigimg); // Добавляем закачанные файлы в письмо. $mail->send(); // Отправляем.
// Header("Location:addcrib.php?action=send"); // exit;
} ?> <form method=post enctype="multipart/form-data"> <table border="0" width="780" cellspacing="0" cellpadding="0" align="center"> <tr> <td width="200">Факультет:</td> <td width="580"><input type="text" name="fc" style="width:250" value="<?=$fc?>"></td> </tr> <tr> <td width="200">Курс:</td> <td width="580"><input type="text" name="kr" style="width:250" value="<?=$kr?>"></td> </tr> <tr> <td width="200">Семестр:</td> <td width="580"><input type="text" name="sm" style="width:250" value="<?=$sm?>"></td> </tr> <tr> <td width="200">Дисциплина:</td> <td width="580"><input type="text" name="dp" style="width:250" value="<?=$dp?>"></td> </tr> <tr> <td width="200">Преподаватель:</td> <td width="580"><input type="text" name="pr" style="width:250" value="<?=$pr?>"></td> </tr> <tr> <td width="200">Примечание:</td> <td width="580"><textarea name="pm" style="width:300; height:100"><?=$pm?></textarea></td> </tr> <tr> <td>Архив: </td> <td><input type="file" name=image></td> </tr> <tr> <td width="480" colspan="2" align="center"><input type="submit" value="Отправить" name="send"> <input type="reset" value="Очистить" name="reset"></td> </tr> </table> </form> </body> </html>
|
Перепиши путь на свой, больше ничего не меняй. Ошибки: не было точки с запятой после загрузки файла и не прописан в form тип Добавлено @ 11:24 Правда скорее всего на мыло файл не придет, нужен Mail класс. Ищем в поиске, где-то был. Добавлено @ 11:27 Вот маил класс: Код | <?php
class Mail { // Конфигурационные переменные: // Отправитель сообщения. // Некоторые хостеры требуют наличия адреса отправителя сообщения. // Если Ваш хостер допускает отсутствие этого заголовка, // параметр можно упустить. // // @var string
var $from;
// Получатель сообщения. // // @var string
var $to;
// Тема сообщения. // // @var string
var $subject;
// Текст сообщения. // // @var string
var $body; // Эта переменная разрешает или запрещает автоматическое определение // html - контента в теле сообщения. // По умолчанию включена. // // @var bool
var $html_auto = true;
// Эта переменная работает только при отключенной переменной $html_auto // Она позволяет вручную выбрать тип контента в теле сообщения. // Если переменная включена, тело сообщения будет передаваться в виде // html, если отключена - в виде plain text. // По умолчанию отключена. // // @var bool
var $html = false;
// Кодировка текста отправляемого сообщения. // Разрешены кодировки: // windows-1251 // koi8-r // iso8859-5 // x-cp866 // x-mac-cyrillic // По умолчанию используется кодировка koi8-r // // @var string
var $cp = 'koi8-r';
// Эта переменная разрешает или запрещает автоматическое определение // кодировки исходного текста сообщения. // По умолчанию включена. // // @var bool
var $cp_auto = true;
// Эта переменная работает только при отключенной переменной $cp_auto // Она позволяет вручную выбрать кодировку исходного текста сообщения. // Разрешены кодировки: // windows-1251 // koi8-r // iso8859-5 // x-cp866 // x-mac-cyrillic // По умолчанию используется кодировка windows-1251 // // @var string
var $cp_in;
// Конец конфигурационных переменных. // Символ перевода строки в зависимости от операционной системмы.
var $nl;
// Переменная несет в себе массив присоединенных файлов.
var $parts = Array();
// Переменная несет в себе массив заголовков сообщения, // добавленных из вне.
var $headers = Array();
function Mail() { strstr(PHP_OS, 'WIN') ? $this->nl = "\r\n" : $this->nl = "\n"; }
// Метод предназначен для добавления файла к сообщению. // // bool add_attachment(string filename, [string type])
function add_attachment($file) { if (file_exists($file)) { $file_name = basename($file); if (function_exists('mime_content_type')) { $ctype = mime_content_type($file); } else { $pathinfo = pathinfo($file); $mime = Array( 'rar' => 'application/x-tar', 'zip' => 'application/x-zip-compressed', 'asf' => 'video/x-ms-asf', 'wmv' => 'video/x-ms-wmv', 'aiff' => 'audio/aiff', 'au' => 'audio/basic', 'mid' => 'audio/mid', 'mp3' => 'audio/mpeg', 'wav' => 'audio/wav', 'wma' => 'audio/x-ms-wma', 'avi' => 'video/x-msvideo', 'ivf' => 'video/x-ivf', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', 'art' => 'image/x-jg', 'bmp' => 'image/bmp', 'gif' => 'image/gif', 'jpg' => 'image/jpg', 'swf' => 'application/futuresplash', 'tiff' => 'image/tiff', 'pdf' => 'application/pdf', 'html' => 'text/html', 'htm' => 'text/html', 'xls' => 'application/x-msexcel', 'doc' => 'application/msword', 'rtf' => 'application/msword', 'rtx' => 'text/richtext', 'xml' => 'text/xml', 'hta' => 'application/hta', 'css' => 'text/css', 'txt' => 'text/plain' ); isset($mime[$pathinfo['extension']]) ? $ctype = $mime[$pathinfo['extension']] : $ctype = 'application/octet - stream'; } $fopen = fopen($file, 'r'); $attachment = fread($fopen, filesize($file)); fclose($fopen); $this->parts[] = Array ( 'name' => $file_name, 'attachment' => $attachment, 'ctype' => $ctype, ); return 0; } else { return 1; } }
// Метод предназначен для добавления заголовка к сообщению. // // void add_header(string str)
function add_header($header) { $this->headers[] = trim($header); } function detect_cyr_charset($str) { $charsets = Array( 'k' => 0, 'w' => 0, 'd' => 0, 'i' => 0, 'm' => 0 );
for ($i = 0, $length = strlen($str); $i < $length; $i++) { $char = ord($str[$i]); //non-russian characters if ($char < 128 || $char > 256) continue; //cp866 if (($char > 159 && $char < 176) || ($char > 223 && $char < 242)) $charsets['d'] += 3; if (($char > 127 && $char < 160)) $charsets['d'] += 1; //koi8-r if (($char > 191 && $char < 223)) $charsets['k'] += 3; if (($char > 222 && $char < 256)) $charsets['k'] += 1; //win-1251 if ($char > 223 && $char < 256) $charsets['w'] += 3; if ($char > 191 && $char < 224) $charsets['w'] += 1; //mac if ($char > 221 && $char < 255) $charsets['m'] += 3; if ($char > 127 && $char < 160) $charsets['m'] += 1; //iso-8859-5 if ($char > 207 && $char < 240) $charsets['i'] += 3; if ($char > 175 && $char < 208) $charsets['i'] += 1; }
arsort($charsets); return key($charsets); }
function cp_convert() { $cp_array = Array( 'windows-1251' => 'w', 'koi8-r' => 'k', 'iso8859-5' => 'i', 'x-cp866' => 'a', 'x-mac-cyrillic' => 'm' );
if ($this->cp_auto == true) { $from = $this->detect_cyr_charset($this->body); } else { isset($cp_array[$this->cp_in]) ? $from = $cp_array[$this->cp_in] : $from = 'w'; }
isset($cp_array[$this->cp]) ? $to = $cp_array[$this->cp] : $to = 'k';
$this->subject = convert_cyr_string($this->subject, $from, $to); $this->body = convert_cyr_string($this->body , $from, $to); }
function build_part($part) { $attachment = chunk_split(base64_encode($part['attachment'])); $encoding = 'base64'; return 'Content-Type: ' . $part['ctype'] . ($part['attachment'] ? '; name = "' . $part['name'] . '"' : '') . $this->nl . 'Content-Transfer-Encoding: ' . $encoding . $this->nl . $this->nl . $attachment . $this->nl; }
function build_multipart() { $boundary = 'b' . md5(uniqid(time())); $multipart = 'Content-Type: multipart/mixed; boundary = ' . $boundary . $this->nl . $this->nl . 'This is a MIME encoded message.' . $this->nl . $this->nl . '--' . $boundary . $this->nl; $multipart .= 'Content-Type: text/'; if ($this->html_auto == true) { $pattern = "%</?\w+(\s[^>]*)?>%is"; preg_match($pattern, $this->body) == true ? $multipart .= 'html' : $multipart .= 'plain'; } else { $this->html == true ? $multipart .= 'html' : $multipart .= 'plain'; } $multipart .= '; charset=' . $this->cp . $this->nl . 'Content-Transfer-Encoding: 8bit' . $this->nl . $this->nl . $this->body . $this->nl . $this->nl . '--' . $boundary; $i = 0; $count = sizeof($this->parts); while ($i < $count) { $multipart .= $this->nl . $this->build_part($this->parts[$i]). '--' . $boundary; $i++; } return $multipart .= '--' . $this->nl; }
function send() { $this->cp_convert(); $headers = ''; empty($this->from) or $headers .= 'From: ' . $this->from . $this->nl; $i = 0; $count = sizeof($this->headers); while ($i < $count) { $headers .= $this->headers[$i] . $this->nl; $i++; } $headers .= 'MIME-Version: 1.0' . $this->nl; $headers .= $this->build_multipart(); return mail($this->to, $this->subject, '', $headers); } }
/* Пример использования:
$mail = new Mail; $mail->from = '[email protected]'; $mail->to = '[email protected]'; $mail->subject = 'Тестовое сообщение'; $mail->body = '<center><b>Привет!</b><br />Вот изображение 1: <img src="1.gif" /> и изображение 2: <img src="2.gif" /></center>';
$mail->add_header('X-Priority: 2'); $mail->add_attachment('1.gif'); $mail->add_attachment('2.gif');
$mail->send(); */ ?>
| Это сообщение отредактировал(а) PARROT - 4.7.2005, 11:37
--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
|