| |
|
|
| | Привет народ у меня не большая проблема! С этого сайт по уроку я сделал отправку почты с файлом, т.к. фаил мне не нужен я просто в Index.html убрал форму для загрузки файла.
Также мне не надо чтобы вводили e-mail, я хочу чтобы почта всегда отсылалась на одно мыло..... Frizecktor@rambler.ru... что надо поменять в коде?
Help =)
http://lister.hut1.ru
И ещё, если вам не сложно.. то заодно скажите как сделать чтобы когда почта отправилась, страница возвращалась на главную) а то я в php нуль
Index.html
<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=30%>Кому</td><td align=right><input type=text name=mail_to maxlength=32></td></tr>
<tr><td>Ф.И.О.</td><td align=right><input type=text name=mail_subject maxlength=150></td></tr>
<tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td>
</tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr>
</form>
</table>
</center>
</BODY>
</HTML>
|
simple_mail.php
<?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");
$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);
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
function send_mail($mail_to, $thema, $html, $path)
{ if ($path) {
$fp = fopen($path,"rb");
if (!$fp)
{ print "Cannot open file";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
}
$name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)
$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: Adress@info.ru";
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1253$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL; // раздел между заголовками и телом html-части
$multipart .= chunk_split(base64_encode($html));
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла
$multipart .= chunk_split(base64_encode($file));
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers))
{return False; //если не письмо не отправлено
}
else { //// если письмо отправлено
return True;
}
exit;
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: frizecktor
(06.05.2007 в 22:51)
| | | Зачем столько не нужного кода, я бы сделал так:
<?php
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $_POST[mail_to]) and $_POST[mail_to]!= "")
{print "Введите корректный E-mail адрес!</B></center>"; exit;}
else
{
$tema="Письмо с сайта";
$body="ФИО - ".$_POST[mail_subject]."<br><br>Сообщение:<br>".$_POST[mail_msg];
sendmail($_POST[mail_to],Frizecktor@rambler.ru,$tema,$body);
header("Location: index.php");
}
function sendmail($from,$to,$subj,$text) {
$headers = "Reply-To: $from\r\n";
$headers .= "From: $from\r\n";
$headers .= "Return-Path: $from\r\n";
$headers .= "Content-Type: text/html; charset=windows-1251\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$subj = $subj;
@mail($to,$subj,$text,$headers);
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: zerocool
(07.05.2007 в 09:19)
| | | Спасибо, а ты не мог бы написать для кода Index.php :) с формами плз, а то я ноль в пхп
ИМЯ
ВАШ e-mail
Cообщение:
отправить | |
| |
|
|