Меню сайта |
|
|
Мини-чат |
|
|
Пожертвование сайту |
|
|
Опрос |
|
|
|
Главная » 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();
}
}
?>
|
Категория: Исходники |
Просмотров: 1314 |
Добавил: -=FoBoS=-
| Рейтинг: 0.0/0 |
|
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
Форма входа |
Гость
Сообщения:
Группа: Гости
Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
|
|
Поиск по сайту |
|
|
Календарь |
|
|
Друзья сайта |
|
|
Наш баннер |
[
Получить код баннера]
| |
Облакто тегов |
Для красивого отображения этого блока требуетсяFlash Player 9 или выше. |
|
Кто сегодя был на сайте |
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 Зарегистрировано на сайте: 14962 Новых сегодня: 0 Новых вчера: 0 Новых за неделю: 0 Новых за месяц: 0 Из них: Новоприбывших: 14923 Проверенных: 0 Модераторов: 1 Помошник администратора: 1 Администраторов: 1 Из них: Парней 14327 Девушек 634 1 |
|
|