Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка почтового сообщения при заполнении HTML-формы
 
 автор: Buhen   (15.07.2007 в 17:45)   письмо автору
 
 

Как сделать так чтобы данные из формы отправлялись на email и при том чтобы это все происходило без помощи Outlook'а. Потому что мало кто пользуется аутлуком а удобнее чтобы данные сами отправлялись! Пожалуйста выложите готовый код!

   
 
 автор: Sobachka   (15.07.2007 в 18:06)   письмо автору
 
   для: Buhen   (15.07.2007 в 17:45)
 

http://ru.php.net/mail я думаю это вам поможет ;)

   
 
 автор: Buhen   (15.07.2007 в 18:10)   письмо автору
 
   для: Sobachka   (15.07.2007 в 18:06)
 

Не врубился все на английском. Нифига непонятно. PLZ объясните!

   
 
 автор: Sobachka   (15.07.2007 в 18:18)   письмо автору
 
   для: Buhen   (15.07.2007 в 18:10)
 

> все на английском
а как вы без знания английского хотите программированием на PHP заниматься??? ну это так, между слов...
// http://translate.google.com ;)
> Нифига непонятно. PLZ объясните!
http://ru.php.net/manual/ru/function.mail.php
для отправки данных из формы воспользуйтесь функцие mail();
Приницип работы такой: mail("кому","тема","текст","допольнительные заголовки(опционально)");
данные туда можно из массива $_POST из формы например занести :)
разжевал? ггг

   
 
 автор: Виктор-тот   (15.07.2007 в 18:19)   письмо автору
 
   для: Buhen   (15.07.2007 в 18:10)
 

<?php 
if(!empty($_POST))
{
  
// Обработчик HTML-формы
  
include "handler.php";
}
?>
<table>
<form enctype='multipart/form-data' method=post> 
<tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr> 
<tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr> 
<tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td></tr>
<tr><td width=50%>Photo:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr> 
<tr><td colspan=2><input type=submit value='Отправить'></td></tr> 
</form> 
</table>


handler.php

<?php
  
if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); 
  
// проверяем правильности заполнения с помощью регулярного выражения 
  
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$/i"$_POST['mail_to']))
  {
   exit(
"Введите адрес в виде somebody@server.com"); 
  }
  
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to'])); 
  
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject'])); 
  
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg'])); 
  
$picture ""
  
// Если поле выбора вложения не пустое - закачиваем его на сервер 
  
if (!empty($_FILES['mail_file']['tmp_name'])) 
  { 
    
// Закачиваем файл 
    
$path $_FILES['mail_file']['name']; 
    if (
copy($_FILES['mail_file']['tmp_name'], $path)) $picture $path
  } 
  
$thm $_POST['mail_subject'];
  
$msg $_POST['mail_msg'];
  
$mail_to $_POST['mail_to'];
  
// Отправляем почтовое сообщение 
  
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($fpfilesize($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 'koi8-r'// или $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)) 
    { 
      exit(
"К сожалению, письмо не отправлено"); 
    } 
  } 
  
// Автоматический переход на главную страницу форума
  
echo "<HTML><HEAD>
        <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_SERVER['PHP_SELF']."'>
        </HEAD></HTML>"
;
?>




<?php
  $theme 
"Отчёт с сайта";
  
$theme =  convert_cyr_string($theme'w''k'); 
  
$message "<html>
              <head></head>
              <body>
              Письмо отправлено - "
.date("d.m.Y H:i:s")."<br>
              Размер скрипта отправителя - "
.filesize($_SERVER['PHP_SELF'])."
              </body>
              </html>"
;
  
$message =  convert_cyr_string($message'w''k'); 
  
$headers "Content-Type: text/html; charset=KOI8-R\r\n";
  if(
mail($to$subject$message$headers))
  {
    echo 
"Письмо успешно отправлено";
  }
  else
  {
    echo 
"Произошла ошибка - письмо не отправлено";
  }
?>

   
 
 автор: Buhen   (15.07.2007 в 18:35)   письмо автору
 
   для: Виктор-тот   (15.07.2007 в 18:19)
 

Большое спасибо за пример! =)))) ГГ

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования