|
|
|
| Помогите пожалуйста.
Это обработчик формы, присылает письмо с вложенным файлом, по крайней мере так задумывалось.
Короче, дело в том, что файл на сервер загружается, а вот письмо не приходит :((
Что делать?, люди умные, подскажите)
<?php
switch($select)
{
case "diagnoz":
echo '<p>Text1</p>';
break;
case "organizacii_diagnostiki":
echo '<p>Text2</p>';
break;
case "oplata_diagnostiki":
echo '<p>Text3</p>';
break;
}
$_POST['fiop'] = htmlspecialchars(stripslashes($_POST['fiop']));
$_POST['fiod'] = htmlspecialchars(stripslashes($_POST['fiod']));
$_POST['email'] = htmlspecialchars(stripslashes($_POST['email']));
$_POST['pol'] = htmlspecialchars(stripslashes($_POST['pol']));
$_POST['year'] = htmlspecialchars(stripslashes($_POST['year']));
$_POST['pochta'] = htmlspecialchars(stripslashes($_POST['pochta']));
$_POST['money'] = htmlspecialchars(stripslashes($_POST['money']));
$_POST['tel'] = htmlspecialchars(stripslashes($_POST['tel']));
$picture = "";
$fiop=$HTTP_POST_VARS['fiop'];
$fiod=$HTTP_POST_VARS['fiod'];
$email=$HTTP_POST_VARS['email'];
$pol=$HTTP_POST_VARS['pol'];
$year=$HTTP_POST_VARS['year'];
$pochta=$HTTP_POST_VARS['pochta'];
$money=$HTTP_POST_VARS['money'];
$tel=$HTTP_POST_VARS['tel'];
if (!empty($_FILES['mail_file']['tmp_name']))
{
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = $_POST['select'];
$msg = 'Text4: ' .$fiop."\n"
.'<br>Text5: ' .$pol."\n"
.'<br>Text6: ' .$year."\n"
.'<br>Text7: '.$fiod."\n"
.'<br>Text8: ' .$pochta."\n"
.'<br>Text9: ' .$tel."\n"
.'<br>E-mail: ' .$email."\n";
$mail_to = "ad_mexture@mail.ru";
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time()));
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожелению письмо не отправлено :(";
exit();
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ADmexture
(19.02.2007 в 19:00)
| | Вы можете воспользоваться приложением http://www.softtime.ru/scripts/mailattach.php, которое 100% работает. | |
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 19:05)
| |
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
|
Вы могли бы и исправить эту дрянь в "стопроцентно работающем скрипте", если ссылаетесь на него с упорством, достойным лучшего применения. | |
|
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 19:22)
| | Я Вас правильно понял, $thema или $thm?
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
function send_mail($mail_to, $thema, $html, $path)
|
И еще вопросик, что это за строка?
$name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)
|
| |
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 19:22)
| | Стоп, а можно узнать, что в этом не нравится? | |
|
|
|
|
|
|
|
для: ddhvvn
(19.02.2007 в 19:33)
| | Это, видимо, вопрос ко мне.
Не нравится, когда в поля почтового сообщения попадают искаженные значения,
(в прошедшем варианте искаженные функциями htmlspecialchars и stripslashes (при выключенных magic quotes)
Не нравится, когда в поле Content-Transfer-Encoding попадала строка, которой нет в спецификации MIME.
Касательно того, что сейчас - мне тоже не нравится.
Не нравится, что $EOL нужно подбирать опытным путем между "\r\n" и "\n" .
Это стоит оговорить в коментарии.
Но ничего с этим поделать не могу.
Ну и вопрос искажений полей остался....
.....
И еще коробит, что мой ник упомянули, а elenaki (этот вариант рожден общими нашими усилиями) - нет.... | |
|
|
|
|
|
|
|
|
для: cheops
(19.02.2007 в 21:37)
| | Мда, че то, ни че, не работает, Ваш 100%-ик, не отправляет письмо, ;(( Просто пустой экран и все, а есть у кого-нибудь другой код отправки? | |
|
|
|
|
|
|
|
для: ADmexture
(24.02.2007 в 15:28)
| | У вас письма без вложения отправляются? | |
|
|
|