отправка почтового сообщения с веб-страници

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bonh
мл. сержант
Сообщения: 119
Зарегистрирован: 2006-07-19 7:12:19
Откуда: Томск

отправка почтового сообщения с веб-страници

Непрочитанное сообщение bonh » 2007-07-11 14:13:58

Ситуация следующая: с веб страници нужно отправлять почту вставляю туды скрипт php что то типа такого:

Код: Выделить всё

<?php 
function show_form() 
{ 
?> 
<form action="" method=post> 
<div align="center"> 
<br />Имя*<br /> 
<input type="text" name="name" size="40"> 
<br />Фамилия*<br /> 
<input type="text" name="naml" size="40"> 
<br />Паспорт*<br /> 
<input type="text" name="namek" size="40"> 
<br />Страна*<br /> 
<input type="text" name="namep" size="40"> 
<br />Контактный телефон<br /> 
<input type="text" name="tel" size="40"> 
<br />Контактный email*<br /> 
<input type="text" name="email" size="40"> 
<br />Teма<br /> 
<input type="text" name="title" size="40"> 
<br />Сообщение*<br /> 
<textarea rows="10" name="mess" cols="30"></textarea> 
<br /><input type="submit" value="Отправить" name="submit"> 
</div> 
</form> 
* Помечены поля, которые необходимо заполнить 
<? 
} 

function complete_mail() { 
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично 
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); 
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); 
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30); 
$_POST['namel'] = substr(htmlspecialchars(trim($_POST['namel'])), 0, 30); 
$_POST['namek'] = substr(htmlspecialchars(trim($_POST['namek'])), 0, 30); 
$_POST['namep'] = substr(htmlspecialchars(trim($_POST['namep'])), 0, 30); 

$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); 
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50); 
// если не заполнено поле "Имя" - показываем ошибку 0 
if (empty($_POST['name'])) 
output_err(0); 
// если не заполнено поле "Имя" - показываем ошибку 1 
if (empty($_POST['namel'])) 
output_err(1); 
// если не заполнено поле "Имя" - показываем ошибку 2 
if (empty($_POST['namek'])) 
output_err(2); 
// если не заполнено поле "Имя" - показываем ошибку 3 
if (empty($_POST['namep'])) 
output_err(3); 

// если неправильно заполнено поле email - показываем ошибку 4 
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])) 
output_err(4); 
// если не заполнено поле "Сообщение" - показываем ошибку 5 
if(empty($_POST['mess'])) 
output_err(5); 
// создаем наше сообщение 
$mess = ' 
Имя отправителя:'.$_POST['name'].' 
Фамилия:'.$_POST['namel'].' 
Паспорт:'.$_POST['namek'].' 
Страна:'.$_POST['namep'].' 
Контактный телефон:'.$_POST['tel'].' 
Контактный email:'.$_POST['email'].' 
'.$_POST['mess']; 
// $to - кому отправляем 
$to = 'test@test.ru'; 
// $from - от кого 
$from='test@test.ru'; 
mail($to, $_POST['title'], $mess, "From:".$from); 
echo 'Спасибо! Ваше письмо отправлено.'; 
} 

function output_err($num) 
{ 
$err[0] = 'ОШИБКА! Не введено имя.'; 
$err[1] = 'ОШИБКА! Неверно введен фамилия.'; 
$err[2] = 'ОШИБКА! Неверно введен паспорт.'; 
$err[3] = 'ОШИБКА! Неверно введен страна.'; 
$err[4] = 'ОШИБКА! Неверно введен e-mail.'; 

$err[5] = 'ОШИБКА! Не введено сообщение.'; 
echo '<p>'.$err[$num].'</p>'; 
show_form(); 
exit(); 
} 

if (!empty($_POST['submit'])) complete_mail(); 
else show_form(); 
?>
Вопрос в следующем : Что нужно дополнительно на сервере сделать что бы это всё заработало (с apaxhe'm, нужен ли на серве MDA, да и вообще что делать :?: ) :oops:
Конфига сервы: FreeBSD 6.2 + apach 1.3(В настройках апача практически нечего не менял)
В жизни давно я понял
Кроется гибель где.
В пиве никто не тонет,
Тонут всегда в воде.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Непрочитанное сообщение schizoid » 2007-07-11 15:33:29

ну по идее почтовик+домен нуно иметь
ядерный взрыв...смертельно красиво...жаль, что не вечно...