| |
|
|
| | Как сделать так чтобы данные из формы отправлялись на email и при том чтобы это все происходило без помощи Outlook'а. Потому что мало кто пользуется аутлуком а удобнее чтобы данные сами отправлялись! Пожалуйста выложите готовый код! | |
| |
|
|
| |
|
|
| |
для: Buhen
(15.07.2007 в 17:45)
| | | http://ru.php.net/mail я думаю это вам поможет ;) | |
| |
|
|
| |
|
|
| |
для: Sobachka
(15.07.2007 в 18:06)
| | | Не врубился все на английском. Нифига непонятно. PLZ объясните! | |
| |
|
|
| |
|
|
| |
для: Buhen
(15.07.2007 в 18:10)
| | | > все на английском
а как вы без знания английского хотите программированием на PHP заниматься??? ну это так, между слов...
// http://translate.google.com ;)
> Нифига непонятно. PLZ объясните!
http://ru.php.net/manual/ru/function.mail.php
для отправки данных из формы воспользуйтесь функцие mail();
Приницип работы такой: mail("кому","тема","текст","допольнительные заголовки(опционально)");
данные туда можно из массива $_POST из формы например занести :)
разжевал? ггг | |
| |
|
|
| |
|
|
| |
для: 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($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))
{
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 "Произошла ошибка - письмо не отправлено";
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: Виктор-тот
(15.07.2007 в 18:19)
| | | Большое спасибо за пример! =)))) ГГ | |
| |
|
|