отправить файл по e-mail из формы

L
На сайте с 13.08.2011
Offline
40
892

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


Имя <input value="" type="text" name="name"/>

<select name="color">
<option value="">Выберите цвет</option>
<option value="Белый">Белый</option>
<option value="Черный">Черный</option>
<option value="Синий">Синий</option>
<option value="Красный">Красный</option>
<option value="Зеленый">Зеленый</option>
<option value="Желтый">Желтый</option>
</select>
<input type="file" name="filename"/>

<input type="submit" value="Отправить" /><br />

</form>

mail.php

<?php

$name=$_POST["name"];
$color=$_POST["color"];

if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
{
// Если файл загружен успешно, перемещаем его
// из временной директории в конечную
move_uploaded_file($_FILES["filename"]["tmp_name"], "email/".$_FILES["filename"]["name"]);
} else {
echo("Ошибка загрузки файла");
}

$to = "mail@mail.ru";
$subject = "Тема письма";
$message = "Имя: $name Цвет: $color";

mail ($to,$subject,$message,$filename);

exit;
?>

На сервер файл копирует но не отсылает. Что подправить?

DiAksID
На сайте с 02.08.2008
Offline
236
#1

mail.ru может не принемать письма если PTR в IP криво прописан. т.е. скрипт письмо отсылает, но вот mail.ru его не принимает. отошлите на гугел для контроля, он вроде бы с PTR особо не заморачивается...

show must go on !!!...
L
На сайте с 13.08.2011
Offline
40
#2

это я тут от фонаря написал. почта, на самом деле, на gmail - туда шлю.

edogs software
На сайте с 15.12.2005
Offline
775
#3
looner:

move_uploaded_file($_FILES["filename"]["tmp_name"], "email/".$_FILES["filename"]["name"]);

mail ($to,$subject,$message,$filename);

На сервер файл копирует но не отсылает. Что подправить?

А откуда код копипастили? Такое ощущение что часть погибла при копипасте.

Покурите http://ru2.php.net/manual/ru/function.mail.php#105661 (пример в комментах), там по сути готовая функция, вызывать примерно как multi_attach_mail('addressto@gmail.com', array("email/".$_FILES["filename"]["name"]), 'yourmail@gmail.com')

А по уму - познакомьтесь с phpmailer классом.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий