Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Мини-чат
Пожертвование сайту
Опрос
Добавить ли на сайт шаблоны для Joomla, WordPress?
Всего ответов: 1210
Главная » 2008 » Декабрь » 11 » Отправка письма с вложением на РНР
Отправка письма с вложением на РНР
00:56
Функция предназначена для отправки письма с сайта с вложенным файлом. Создадим HTML-форму, предназначенную для заполнения пользователем

HTML-форма index.php

Code
<HTML>  

<HEAD>  

<TITLE>Отправка сообщения с вложением</TITLE>  

</HEAD>  

<BODY>  

<H3> <center><font color=#1E90FF>Отправка сообщения с вложением</font></H3>  

<center>  

<table width=1 border=0>  

<form action=simple_mail.php 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><td width=50%>Photo:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr>  

</tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr>  

</form>  

</table>  

</center>  

</BODY>  

</HTML>

Обработчик simple_mail.php HTML-формы index.php может выглядеть следующим образом

Обработчик simple_mail.php

Code
<?php  

  if(empty($_POST['mail_to'])) exit("Введите адрес получателя");  

  // проверяем правильности заполнения с помощью регулярного выражения  

  if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/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($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 = '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))  

  {  

  echo "К сожалению, письмо не отправлено";  

  exit();  

  }  

  }  

?>
Категория: Исходники | Просмотров: 1267 | Добавил: -=FoBoS=- | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Гость

Сообщения:

Группа:
Гости
Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Поиск по сайту
Календарь
«  Декабрь 2008  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031
Друзья сайта
3dnews daily digital digest
Наш баннер
[ Получить код баннера]
Облакто тегов

Для красивого отображения этого блока требуетсяFlash Player 9 или выше.

Кто сегодя был на сайте
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Зарегистрировано на сайте: 14962

Новых сегодня: 0

Новых вчера: 0

Новых за неделю: 0

Новых за месяц: 0

Из них:

Новоприбывших: 14923

Проверенных: 0

Модераторов: 1

Помошник администратора: 1

Администраторов: 1

Из них:

Парней 14327

Девушек 634

1

Каталог webplus.info Проверить PR ТИЦ
Все материалы которые находятся на этом сайте могут быть использованы исключительно в ознакомительных целях! За любое нелегальное использования данных материалов ни администрация сайта ни хостинг-провайдер ответственности не несут! При копировании материала обязательно указывать рабочую ссылку на alltopc.ucoz.ru! Created by -=FoBoS=- © 2008-2024