Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

e-mail с вложением

Обсуждение темы e-mail с вложением в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Помогите пожалуйста с таким вопросом, у меня на сайте есть форма отправки письма администратору, заполнил поля и нажал сабмит, столкнулся с таким вопросом ...


Закрытая тема
 
Опции темы
Старый 01.06.2010, 17:18   #1
Помогите пожалуйста с таким вопросом, у меня на сайте есть форма отправки письма администратору, заполнил поля и нажал сабмит, столкнулся с таким вопросом что нужно еще что бы отправляло вложение как это сделать? Вот код:
Код:
<?php
 if(isset($_POST['name']))
 {
 $name = $_POST['name'];
 } 
 if(isset($_POST['thurname']))
 {
 $thurname = $_POST['thurname'];
 }
 if(isset($_POST['vacansy']))
 {
 $vacansy = $_POST['vacansy'];
 }
 if(isset($_POST['tel']))
 {
 $tel = $_POST['tel'];
 }
 if(isset($_POST['filename']))
 {
 $filename = $_POST['filename'];
 }
 if(isset($_POST['pr']))
 {
 $pr = $_POST['pr'];
 }
   if (isset($name)) {trim($name); }
   else {$name = "";}
   
   if (isset($thurname)) {trim($thurname); }
   else {$thurname = "";}

    if (isset($vacansy)) {trim($vacansy); }
    else {$vacansy = "";}
	
	if (isset($tel)) {trim($tel); }
   else {$tel = "";}
   
   if (isset($filename)) {trim($filename); }
    else {$filename = "";}
	
	if (isset($pr)) {trim($pr); }
    else {$pr = "";}
if (empty($name) or empty($thurname) or empty($vacansy) or empty($tel) or empty($filename) or empty($pr) )

{
exit ("<p align=center>Вы заполнили не все поля, вернитесь назад и заполните все поля.<br><input type='button' onclick='history.back()' value='Вернуться назад'> ");
}

$date = date("Y-m-d");
$adddress = "[email protected]";
$subject = "Новое резюме с сайта никвер (.$vacansy.)";
$message = "Новое письмо от посетителя:
Фамилия: ".$thurname."\n
Имя: ".$name."\n
Тема письма: Кандидат на вакансию ".$vacansy."\n
Контактный тел.: ".$tel."\n
Резюме: ".$filename."\n
Дата: ".$date."\n";
mail($adddress,$subject,$message,"Content-type:text/plain; charset = windows-1251");
echo "<html><head>
<meta http-equiv='Refresh' content='0;  URL=../vacansy.php'>
</head></html>";
exit();
?>
На сколько я понимаю нужно просто добавить строку там где адрес сабжект и месаг, только что туда написать никак найти не могу((

Добавлено через 3 часа 19 минут

Вроде бы как нашел решение, но что то работать не хочет, посмотрите плиз:
ВОТ КОД ФОРМЫ (файл test.php):
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>
<form action="send.php" method="post" name="form_com">
<table width="500" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="100"><div align="left" style="margin-top:10px"><strong>Имя:</strong></div></td>
    <td><div align="left" style="margin-top:10px"><input type="text" name="name" id="name"></div></td>
    <td width="100"><div align="left" style="margin-top:10px"><strong>Фамилия:</strong></div></td>
    <td><div align="left" style="margin-top:10px"><input type="text" name="thurname" id="thurname"></div></td>
  </tr>
  <tr>
    <td><div align="left" style="margin-top:10px"><strong>Должность: </strong></div></td>
    <td><div align="left" style="margin-top:10px"><input type="text" name="vacansy" size="20"></div></td>
    <td><div align="left" style="margin-top:10px"><strong>Тел.:</strong></div></td>
    <td><div align="left" style="margin-top:10px"><input type="text" name="tel" size="20" onKeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"></div></td>
  </tr>
  <tr>
    <td colspan="3"><div align="center" style="margin-top:10px"><strong>Добавить резюме:</strong></div></td>
    <td><div align="center" style="margin-top:10px"><input type=file name=filename></div></td>
  </tr>
  <tr>
    <td colspan="3"><div align="center" style="margin-top:10px"><strong>Введите код: nikver</strong></div></td>
    <td><div align="center" style="margin-top:10px"><input type="text" name="pr" size="10"></div></td>
  </tr>
  <tr>
    <td colspan="4"><div align="center" style="margin-top:10px"><input name="sum_com" type="submit" value="Отправить"><input name="reset" type="reset" value="Сброс"></div></td>
  </tr>
</table>
</form>
</body>
</html>


Вот код обробатывающего файла (send.php):
Код:
<?php 
function XMail( $from, $to, $subj, $text, $filename=FALSE)
{
$f = fopen($filename,"rb" ;
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

if (!@mail("$to", "$subj", $zag, $head))
return 0;
else
return 1;
}

if(isset($_POST['name']))
{
$name = $_POST['name'];
}
if(isset($_POST['thurname']))
{
$thurname = $_POST['thurname'];
}
if(isset($_POST['vacansy']))
{
$vacansy = $_POST['vacansy'];
}
if(isset($_POST['tel']))
{
$tel = $_POST['tel'];
}
if(isset($_POST['filename']))
{
$filename = $_POST['filename'];
}
if(isset($_POST['pr']))
{
$pr = $_POST['pr'];
}
if (isset($name)) {trim($name); }
else {$name = "";}

if (isset($thurname)) {trim($thurname); }
else {$thurname = "";}

if (isset($vacansy)) {trim($vacansy); }
else {$vacansy = "";}

if (isset($tel)) {trim($tel); }
else {$tel = "";}

if (isset($filename)) {trim($filename); }
else {$filename = "";}

if (isset($pr)) {trim($pr); }
else {$pr = "";}
if (empty($name) or empty($thurname) or empty($vacansy) or empty($tel) or empty($filename) or empty($pr) )

{
exit ("<p align=center>Вы заполнили не все поля, вернитесь назад и заполните все поля.<br><input type='button' onclick='history.back()' value='Вернуться назад'> " ;
}

$date = date("Y-m-d" ;
$adddress = "[email protected]";
$subject = "Новое резюме с сайта никвер (Вакансия: $vacansy)";
$file = ".$filename.";
$message = "Новое письмо от посетителя:\n
Фамилия: ".$thurname."\n
Имя: ".$name."\n
Тема письма: Кандидат на вакансию ".$vacansy."\n
Контактный тел.: ".$tel."\n
Резюме: ".$filename."\n
Дата: ".$date."\n";
//mail($adddress,$subject,$message,"Content-type:text/plain; charset = windows-1251" ; 
if(is_uploaded_file($_FILES['filename']['tmp_name']))
{
XMail( "[email protected]", $adddress, $subject, $message, $_FILES['filename']['tmp_name']);
} 
else
{
mail($adddress,$subject,$message,"Content-type:text/plain; charset = windows-1251" ; 
}

echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=../vacansy.php'>
</head></html>";
exit();
?>

Последний раз редактировалось web_smile; 01.06.2010 в 17:18.. Причина: Добавлено сообщение
 
Старый 01.06.2010, 17:18
Ссылки
Старый 03.06.2010, 01:30   #2
Цитата:
Сообщение от web_smile Посмотреть сообщение
но что то работать не хочет
В чем именно это проявляется?
 
Старый 03.06.2010, 15:25   #3
Цитата:
Сообщение от kost Посмотреть сообщение
В чем именно это проявляется?
дело в том что письмо отправляется но вложения в нем нету, проверял на денвере на локальной машине. Но думаю если бы на хостинг залил был бы тот же результат. Мне кажется что то в коде не так
 
Старый 03.06.2010, 15:25
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mail в php redreem ASP, Perl, PHP и MySQL 0 20.05.2011 22:51
Что такое с mail.ru? GLUK Кальянная 7 18.03.2006 22:35
mail(); DiV ASP, Perl, PHP и MySQL 9 10.01.2006 03:20
php + mail vision HTML, CSS, JavaScript 1 04.04.2005 05:36
Отправка сообщения с сайта с вложением файла Spy Зал дебютантов 1 06.11.2003 01:34


Текущее время: 10:52. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум