Здравствуйте, у меня есть обычный скрипт отправки формы на почту: Код (Text): if(isset($_POST['name'])) { $name=$_POST['name']; } if(isset($_POST['email'])) { $email=$_POST['email']; } if(isset($_POST['message'])) { $message=$_POST['message']; } $address="почта"; $tema="Тема"; $mes="От кого: $name n Адрес отправителя: $email n Сообщение: $message"; $go=mail($address, $tema, $mes, "Content-type:text/plain; charset=windows-1251rnFrom:$email"); Но мне нужно, чтобы еще отправляло картинку прикреплённую. Дали ссылку http://www.php.net/manual/ru/function.mail.php#105661 а я в английском и php не силён, помогите разобраться, что надо в скрипт выше добавить еще, чтобы шла отправка картинки. Она у меня под переменной image.
http://ru.wikipedia.org/wiki/Multipart_form-data работа с $_FILES и http://php.net/manual/ru/function.move- ... d-file.html на заметку
Код (Text): $bound = "1234"; $header = "From: $from_name <$from_mail>\n"; $header.="To: $to\n"; $header.="Subject: $subject\n"; $header.="MIME-Version: 1.0\n"; $header.="Content-Type: multipart/mixed; boundary=$bound\n"; $body = "--$bound\n"; $body.="Content-type: text/html; charset=\"windows-1251\"\n"; $body.="Content-Transfer-Encoding: quoted-printable\n\n"; $body.="$message"; $file = file_get_contents($file_name); $body.="\n\n--$bound\n"; $body.="Content-Type: application/octet-stream; "; $body.="name=" . basename($file_name) . "\n"; $body.="Content-Transfer-Encoding:base64\n"; $body.="Content-Disposition:attachment\n\n"; $body.=base64_encode($file) . "\n"; $body.="$bound--\n\n"; mail($to, $subject, $body, $header);
Попробовал сделать... у меня есть форма, где передаётся текст и картинка и скрипт обработки, проблема в $message, не пойму чему он должен быть равен $_FILES['image']['name'] или $_FILES['image']['tmp_name'], если первое - то приходит картинка 1.jpg(по названию с компа), но сама по себе это просто пустой текст с форматом jpg, если второе - то вообще ничего не приходит, даже текст. Вот сам скрипт, помогите разобраться, как я понял там нужно tmp и имя так распределить, чтобы и имя и код картинки передавались правильно. Скрипт обработки: Код (Text): $bound = "1234"; $name=$_POST['name']; $link=$_POST['link']; $message=$_POST['message']; $image=$_FILES['image']['tmp_name']; $address="мыло"; $tema="тема"; $header.="MIME-Version: 1.0\n"; $header.="Content-Type: multipart/mixed; boundary=$bound\n"; $mes= "--$bound\n"; $mes.="Content-type: text/html; charset=\"windows-1251\"\n"; $mes.="Content-Transfer-Encoding: quoted-printable\n\n"; $mes.="Имя файла: $name <br> Прямая ссылка на файл: $link <br> Ссылка на картинку: $image <br> Описание: $message"; $file = file_get_contents($image); $mes.="\n\n--$bound\n"; $mes.="Content-Type: application/octet-stream; "; $mes.="name=" . basename($image) . "\n"; $mes.="Content-Transfer-Encoding:base64\n"; $mes.="Content-Disposition:attachment\n\n"; $mes.=base64_encode($file) . "\n"; $mes.="$bound--\n\n"; $go=mail($address, $tema, $mes, $header);
в $image у тебя должен быть путь до твоего файла с названием файла, например http://site.ru/upload/1.jpg