Помогите! Нужен пхп для отправки писем в html с вложением. Киньте кто нить скрипт в личку или сюда. Заранее благодарин.
Ну может кто поможет? Что сюда запихать что бы можно было присоединять файлы или картинки? Желательно, что бы можно было присоединять много файлов, а не один. PHP: <? if (@function_exists("mail")) { include "config.php"; ?> <? if (isset($_GET['send']) and isset($_POST['sform'])) { $to = trim($_POST['to']); if ($to != "") { $from = $_POST['from']; $theme = $_POST['theme']; $content = $_POST['content']; $to = ereg_replace (",([^ ]{1})", ", \\1", $to); $theme = $theme==""?"No subject":$theme; if (@$_POST['cyr_encode'] == "yes") $theme = "=?koi8-r?B?".base64_encode(convert_cyr_string($theme, "w","k"))."?="; if (@$_POST['html'] == "yes") $ctype = "html"; else $ctype = "plane"; $header = "Content-Type: text/$ctype; charset=\"$charset\" \r\n"; $header .= "From: $from \r\n"; $header .= "X-Mailer: PHP-Mailer by s1ayer[www.spg.arbse.net] \r\n"; if (@$_POST['hide_addr'] == "yes") { $error = 0; $to_array = explode (", ", $to); for ($i=0; $i<count($to_array); $i++) { if ($to_array == "") continue; if (!@mail($to_array[$i], $theme, $content, $header)) $error++; } if ($error == 0) print "Отправка письма завершилась без ошибок<br><br>"; else print "Невозможно отправить письмо!<br><br>"; } else { if (@mail($to, $theme, $content, $header)) print "Отправка письма завершилась без ошибок<br><br>"; else print "Невозможно отправить письмо!<br><br>"; } } else print "Вы не заполнили поле 'Кому' !<br><br>"; } ?> <SCRIPT LANGUAGE="JavaScript"> <!-- function hide_button (){ document.getElementById('button').style.display = "none"; document.getElementById('processing').style.display = "block"; } //--> </SCRIPT> <form action="?send" method="post"> <table> <tr><td>Кому:</td><td><input type="text" name="to" value="<?=$default_to?>" size=40></td></tr> <tr><td>От кого:</td><td><input type="text" name="from" value="<?=$default_from?>" size=40></td></tr> <tr><td>Тема:</td><td><input type="text" name="theme" size=40></td></tr> <tr><td valign="top">Содержание:</td><td><textarea name="content" rows=9 cols=50><?=$default_sign?></textarea></td></tr> <tr><td colspan=2> Опции:<br> <ul> <li>отправить в HTML ? <input type="checkbox" name="html" value="yes"></li> <li>кодировать заголовок письма в koi8 ? <input type="checkbox" name="cyr_encode" value="yes" checked></li> <li>скрыть других адресатов ? <input type="checkbox" name="hide_addr" value="yes" checked></li> </ul> </td> </tr> <tr><td colspan=2 align="right"><input type="hidden" name="sform" value="yes"><input type="submit" value="Отправить" id=button style="display: block" onClick="hide_button()"><button id="processing" style="display: none" disabled>Пожалуйста, ждите...</button></td></tr> </table> </form> <? } else print "Извините, сервер не поддерживает функции <tt>mail ()</tt>"; ?> PHP: <? $charset = "windows-1251"; //кодировка письма $default_to = "slayer <[email protected]>, somebody <[email protected]>"; //адресаты по умолчанию $default_from = "s1ayer <[email protected]>"; //отправитель по умолчанию $default_sign = "\r\n---\r\nBest regards, admin (http://www.spg.arbse.net)"; //подпись в теле письма ?>
Залил вот так. На добавление файла кнопка есть, но файл не пересылает на нужный мыл. И мне нужно присоеденить несколько файлов. Как можно это зделать и что бы все работало. PHP: <? if (@function_exists("mail")) { include "config.php"; ?> <? if (isset($_GET['send']) and isset($_POST['sform'])) { $to = trim($_POST['to']); if ($to != "") { $from = $_POST['from']; $theme = $_POST['theme']; $content = $_POST['content']; $to = ereg_replace (",([^ ]{1})", ", \\1", $to); $theme = $theme==""?"No subject":$theme; // если был файл, то прикрепляем его к письму if(isset($_FILES['attachfile'])) { if($_FILES['attachfile']['error'] == 0){ $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']); } } // если было изображение, то прикрепляем его в виде картинки к телу письма. if(isset($_FILES['attachimage'])) { if($_FILES['attachimage']['error'] == 0){ if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type'])) die ($mail->ErrorInfo); $mess .= 'А вот и наша картинка:<br /><img src="cid:image.gif" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) '; } } $mail->Body = $mess; if (@$_POST['cyr_encode'] == "yes") $theme = "=?koi8-r?B?".base64_encode(convert_cyr_string($theme, "w","k"))."?="; if (@$_POST['html'] == "yes") $ctype = "html"; else $ctype = "plane"; $header = "Content-Type: text/$ctype; charset=\"$charset\" \r\n"; $header .= "From: $from \r\n"; $header .= "X-Mailer: PHP-Mailer by s1ayer[www.spg.arbse.net] \r\n"; if (@$_POST['hide_addr'] == "yes") { $error = 0; $to_array = explode (", ", $to); for ($i=0; $i<count($to_array); $i++) { if ($to_array == "") continue; if (!@mail($to_array[$i], $theme, $content, $header)) $error++; } if ($error == 0) print "Отправка письма завершилась без ошибок<br><br>"; else print "Невозможно отправить письмо!<br><br>"; } else { if (@mail($to, $theme, $content, $header)) print "Отправка письма завершилась без ошибок<br><br>"; else print "Невозможно отправить письмо!<br><br>"; } } else print "Вы не заполнили поле 'Кому' !<br><br>"; } ?> <SCRIPT LANGUAGE="JavaScript"> <!-- function hide_button (){ document.getElementById('button').style.display = "none"; document.getElementById('processing').style.display = "block"; } //--> </SCRIPT> <form action="?send" method="post"> <table> <tr><td>Кому:</td><td><input type="text" name="to" value="<?=$default_to?>" size=40></td></tr> <tr><td>От кого:</td><td><input type="text" name="from" value="<?=$default_from?>" size=40></td></tr> <tr><td>Тема:</td><td><input type="text" name="theme" size=40></td></tr> <tr><td valign="top">Содержание:</td><td><textarea name="content" rows=9 cols=50><?=$default_sign?></textarea></td></tr> <tr><td colspan=2> Опции:<br> <ul> <br />Файл<br /> <input name="attachfile" type="file" size="28"> <br />Изображение<br /> <li>отправить в HTML ? <input type="checkbox" name="html" value="yes"></li> <li>кодировать заголовок письма в koi8 ? <input type="checkbox" name="cyr_encode" value="yes" checked></li> <li>скрыть других адресатов ? <input type="checkbox" name="hide_addr" value="yes" checked></li> </ul> </td> </tr> <tr><td colspan=2 align="right"><input type="hidden" name="sform" value="yes"><input type="submit" value="Отправить" id=button style="display: block" onClick="hide_button()"><button id="processing" style="display: none" disabled>Пожалуйста, ждите...</button></td></tr> </table> </form> <? } else print "Извините, сервер не поддерживает функции <tt>mail ()</tt>"; ?>
saiman Попробуй так: Для начала, чтобы картинки корректно отображались на хостинге. Добавь файл .htaccess в папку со скриптом такого содержания: Code: <IfModule mod_charset.c> CharsetRecodeMultipartForms off </IfModule> Далее сам скрипт PHP: <?php function show_form() { ?> <form action="" method=post> <div align="center"> <br />Имя*<br /> <input type="text" name="name" size="40"> <br />Контактный телефон<br /> <input type="text" name="tel" size="40"> <br />Контактный email*<br /> <input type="text" name="email" size="40"> <br />Teма<br /> <input type="text" name="title" size="40"> <br />Сообщение*<br /> <textarea rows="10" name="mess" cols="30"></textarea> <br /><input type="submit" value="Отправить" name="submit"> </div> </form> * Помечены поля, которые нужно заполнить <? } function complete_mail() { // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично $_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); $_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); $_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30); $_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); $_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50); // если не заполнено поле "Имя" - показываем ошибку 0 if (empty($_POST['name'])) output_err(0); // если неправильно заполнено поле email - показываем ошибку 1 if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])) output_err(1); // если не заполнено поле "Сообщение" - показываем ошибку 2 if(empty($_POST['mess'])) output_err(2); // создаем наше сообщение $mess = ' Имя отправителя:'.$_POST['name'].' Контактный телефон:'.$_POST['tel'].' Контактный email:'.$_POST['email'].' '.$_POST['mess']; // $to - кому отправляем $to = '[email protected]'; // $from - от кого $from='[email protected]'; mail($to, $_POST['title'], $mess, "From:".$from); echo 'Спасибо! Ваше письмо отправлено.'; } function output_err($num) { $err[0] = 'ОШИБКА! Не введено имя.'; $err[1] = 'ОШИБКА! Неверно введен e-mail.'; $err[2] = 'ОШИБКА! Не введено сообщение.'; echo '<p>'.$err[$num].'</p>'; show_form(); exit(); } if (!empty($_POST['submit'])) complete_mail(); else show_form(); ?>
В браузере пишет что всплывающее окно заблокировано. Мне нужно переделать под приклеевание файлов к письму именно мой скрипт указаный выше. Может кто поможет?
Блин, не тупи, разреши javascript в браузере. А вообще сам подумай, вот у тебя даже и то блокиратор окон стоит - вывод, javascript нах, всё делаей через php, так правильней
Ну может кто подскажет, что нужно изменить в моем первом скрипте дабы все похало. Какой класс куда вставить? Я был бы очень признателен тому человеку который помог бы!
PHP: вот пример!!! <IfModule mod_charset.c> CharsetRecodeMultipartForms off </IfModule> Итак, переходим к скрипту: <?php function show_form() { ?> <form action="" method=post enctype="multipart/form-data"> <div align="center"> <br />Имя*<br /> <input type="text" name="name" size="40"> <br />Контактный телефон<br / > <input type="text" name="tel" size="40"> <br />Контактный email*<br / > <input type="text" name="email" size="40"> <br />Teма<br /> <input type="text" name="title" size="40"> <br />Сообщение*<br / > <textarea rows="10" name="mess" cols="30"></textarea> <br />Файл<br / > <input name="attachfile" type="file" size="28"> <br />Изображение<br / > <input name="attachimage" type="file" size="28"> <br /><br /><input type="submit" value="Отправить" name="submit"> </div> </ form> * Помечены поля, которые необходимо заполнить <? } function complete_mail() { // $_POST['title'] содержит данные из поля "Тема", trim () - ($_POST['title'], 0, 1000) - текст до 1000 символов. Для переменных $_POST ['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично $_POST['title'] = substr (htmlspecialchars(trim($_POST['title'])), 0, 1000); $_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); $_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30); $_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); $_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50); // если не заполнено поле "Имя" - показываем ошибку 0 if (empty($_POST['name'])) output_err(0); // если неправильно заполнено поле email - показываем ошибку 1 if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])) output_err(1); // если не заполнено поле "Сообщение" - показываем ошибку 2 if(empty($_POST['mess'])) output_err(2); // обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-) $mess = ' <b>Имя отправителя:</b>'.$_POST['name'].'<br /> <b>Контактный телефон:</b>'.$_POST['tel'].'<br /> <b>Контактный email:</b>'.$_POST['email'].'<br /> '.$_POST['mess']; // подключаем файл класса для отправки почты require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->From = '[email protected]'; // от кого $mail->FromName = 'www.php-mail.ru'; // от кого $mail->AddAddress('[email protected]', 'Имя'); // кому - адрес, Имя $mail->IsHTML(true); // выставляем формат письма HTML $mail->Subject = $_POST['title']; // тема письма // если был файл, то прикрепляем его к письму if(isset($_FILES['attachfile'])) { if($_FILES['attachfile']['error'] == 0){ $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']); } } // если было изображение, то прикрепляем его в виде картинки к телу письма. if(isset($_FILES['attachimage'])) { if($_FILES['attachimage']['error'] == 0){ if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type'])) die ($mail->ErrorInfo); $mess .= 'А вот и наша картинка:<br /><img src="cid:image.gif" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) '; } } $mail->Body = $mess; // отправляем наше письмо if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo); echo 'Спасибо! Ваше письмо отправлено.'; } function output_err($num) { $err[0] = 'ОШИБКА! Не введено имя.'; $err[1] = 'ОШИБКА! Неверно введен e-mail.'; $err[2] = 'ОШИБКА! Не введено сообщение.'; echo '<p>'.$err[$num].'</p>'; show_form(); exit(); } if (!empty($_POST['submit'])) complete_mail(); else show_form(); ?>