Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Открыть новую тему     Написать ответ в эту тему

GiPER

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет. Подскажите как можно с помощью PHP отправить данную форму на e-mail. Конкретно с данными полями.
 
   
 
Посмотреть саму форму можно ТУТ
 
Спасибо




Название откорретировано.

Всего записей: 6 | Зарегистр. 30-01-2003 | Отправлено: 15:44 28-02-2003 | Исправлено: Cheery, 07:21 27-12-2004
vasyok



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Perl скрипт будет выглядеть таким образом.
 
sub outmail {
 
   $mailprog     = "/bin/sendmail -t";
   $masteremail = "куда отправлять"  
   $fromemail = "от кого"    
 
   open (OUTMAIL,"| $mailprog") || die "Ошибка в программе почты";
   print OUTMAIL "To: $masteremail\n";
   print OUTMAIL "Subject: Сообщение из гостевой книги - $user\n";
   print OUTMAIL "From: $fromemail\n\n";
   print OUTMAIL "========= Сообщение из гостевой книги =========\n";
   print OUTMAIL "Имя: $name($ip) Дата: $pdata\n";
   print OUTMAIL "Город: $city\n" if ($useremail ne "0");
   print OUTMAIL "Е-Майл: $mail\n" if ($useremail ne "0");
   print OUTMAIL "Сайт: $url\n" if ($userurl ne "0");
   $text =~ s/<br>/\n/g;
   print OUTMAIL "$text\n";
   close(OUTMAIL);
}
 
 
 
Добавлено
в конце каждой из этих строчек нужна точка с запятой ;
 

Цитата:
$masteremail = "куда отправлять"  
   $fromemail = "от кого"      

 

Всего записей: 202 | Зарегистр. 25-11-2002 | Отправлено: 20:56 28-02-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что то в ентом роде - шлет все поля формы.
$webmaster="tut@sobaka.ru";
$toemail="кому слать";
$i=0;
while (list($cle, $val)=each($_POST)){
    $key[$i]=$cle;
    $value[$i]=$val;
    $i++;
 }
$message = "";
$subject_line = "Form results";
for ($i=0;$i<count($key);$i++)  
                $message .= "--------". $key[$i]." --------\n".$value[$i]."\n";
$headers = "MIME-Version: 1.0\n" ;
$headers .= "Reply-To: $webmaster\n";
$headers .= "X-Sender: Admin <$webmaster>\n";
$headers .= "X-Mailer: FormResults\n";
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "Return-Path: <$webmaster>\n";
$headers .= "Content-Type: text/html;charset=win-1251\n";
mail($toemail, $subject_line, $message, $headers);

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:10 28-02-2003 | Исправлено: Cheery, 17:00 18-11-2004
GiPER

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо огромное!

Всего записей: 6 | Зарегистр. 30-01-2003 | Отправлено: 02:47 01-03-2003
ShaDeRzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я так понял, что это отправка через свой же почтовый клиент.. А как выслать через SMTP-сервер, не задействуя своего почтового клиента???

Всего записей: 7 | Зарегистр. 22-01-2004 | Отправлено: 23:22 24-01-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShaDeRzz

Цитата:
Я так понял, что это отправка через свой же почтовый клиент..  

неправильно ты понял..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:45 24-01-2004
ShaDeRzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошо, тогда объясните мне, не сильно разбирающемуся, как это дело вставить у себя на странице, чтобы оно работало? (Извините. что похожий вопрос я уже задал в параллельной ветке, но хоть где-нибудь ответьте!)  Вобщем мне требуется разместить у себя форму отправки, к примеру новостей, с моего сайта на мой ящик. (Раздел "Добавить новость").. Чтобы было поле ввода адреса отправителя, Имя (ник) и поле собственно для текста. У меня сайт в html. Заранее благодарен за ответы..................

Всего записей: 7 | Зарегистр. 22-01-2004 | Отправлено: 18:41 25-01-2004
Swappp

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShaDeRzz
для начала на сервере должен стоят php, если у тебя бесплатный хостинг в 80% случаев можешь даже не напрягаться (его нет). Если сервер всетаки поддерживает php, создаешь файл например send_form.php и в теге <?php //тут код ?> помещаешь код Cheery, а в форме ставишь action="send_form.php" method="post"

Всего записей: 1716 | Зарегистр. 02-11-2001 | Отправлено: 18:54 25-01-2004 | Исправлено: Swappp, 18:54 25-01-2004
ShaDeRzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Swappp - спасибо за помощь! Хостинг у меня платный (точней у моих друзей, которые дали мне уголок - я поддерживаю часть их проекта, касающуюся wap, sms over wap, wap-chat, картинки, мелодии, и естесственно мобильные новости, для чего собственна и нужна эта форма... На днях (сегодня наверное не получиться) буду пробовать сделать, как ты предложил... Ещё раз спасибо. Если у кого есть другие мнения - пишите, с удовольствием выслушаю (вычитаю )

Всего записей: 7 | Зарегистр. 22-01-2004 | Отправлено: 21:10 25-01-2004
XoioX



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А какой код должен быть, чтобы при незаполненных обязательных полях, форма выдавала стр. "незаполнено обязатю поле", а когда все нормально "спасибо всё ОК!"

----------
Предлагают
на https://floristum.ru - Доставка букетов день в день на дом, цветов по Москве.

Всего записей: 794 | Зарегистр. 25-06-2004 | Отправлено: 21:28 20-11-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XoioX

Цитата:
А какой код должен быть, чтобы при незаполненных обязательных полях, форма выдавала стр. "незаполнено обязатю поле", а когда все нормально "спасибо всё ОК!"

надоел уже.. честно.. когда фильтр юзать будешь?
http://forum.ru-board.com/topic.cgi?forum=31&topic=1935#1

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:42 20-11-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Короткий вариант
PHP: отсылает все данные из формы.

Код:
 
$webmaster="tut@sobaka.ru";  
$toemail="кому слать";  
$message = "";  
while (list($cle, $val)=each($_POST))
     $message .= "--------". $cle." --------\n".$val."\n";  
 
$subject_line = "Form results";  
$headers = "MIME-Version: 1.0\n" ;  
$headers .= "Reply-To: $webmaster\n";  
$headers .= "X-Sender: Admin <$webmaster>\n";  
$headers .= "X-Mailer: FormResults\n";  
$headers .= "X-Priority: 1\n";  
$headers .= "X-MSMail-Priority: High\n";  
$headers .= "Return-Path: <$webmaster>\n";  
$headers .= "Content-Type: text/html;charset=win-1251\n";  
mail($toemail, $subject_line, $message, $headers);

 
 
Perl: пример формы

Код:
<html>
<head><title>Perl Test Script</title></head>
<body>
<form method='post' action='test.pl'>
<p>Please provide us your name and your email address.  
<br>We will send the information to you via email.
 
<p>
Please enter your name:<br>
<input type='text' name='name' size='35'><br>
Please enter your email address:<br>
<input type='text' name='email' size='35'><br>
<p></p>
 
<input type='submit' value='Send Address'>
<input type='reset' value='Start Over'>
</form>
</body>
</html>
 

и скрипта

Код:
#!/usr/local/bin/perl
 
use CGI;
$q = new CGI;
 
$name = $q->param('name');
$email = $q->param('email');
 
open(MAIL, "| /usr/lib/sendmail -oi -n -t");
print MAIL <<EMAIL_TO_USER;
To:$email
From:"your_name"\@kuda.ru
Subject: More Information  
 
Dear $name:
 
Thank you for contacting us. We will send you the material to this email address.
 
EMAIL_TO_USER
 
close MAIL;
 
print "Content-type:text/html\n\n";
 
print <<HTML_RESPONSE;
<html>
<title>Thank You Page</title>
 
<h1>Thanks!</h1>
Thanks, $name!<br>
I'll mail information to $email right away.
</html>
HTML_RESPONSE
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 07:20 27-12-2004 | Исправлено: Cheery, 07:35 27-12-2004
solicitorlaw



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня возникла следующая проблема.  
Имеется php-скрипт который создает форму для отправки e-mail на потовый ящик минуя почтовую программу. Т.е. сразу со страницы.  
У данного скрипта имеется несколько файлов:  
config.php  
footer.php  
form.php  
header.php  
index.php и reclip.txt.  
Скрипт работает нормально, но форма находиться на своей странице.  
Каким образом вставить данный скрипт (форму для отправки) в свою страницу? С тем чтобы можно было ее вписать в свой дизаин?  
 
Решить проблему мне сложно, т.к. я не знаю как вообще работают скрипты. Т.е. у меня к примеру страница называется help.htm и я думаю, что если вставлять пчп-код с формой в страницу имеющую иное название чем предусмотрено автором скрипта - то скрипт работать не будет. Вообщем у меня возникло еще пару вариантов, я пытался через тег script вставлять ссылку на index.php, но это только привело к тому, что при запуске страницы help.htm происходит автоматический редирект на index.php. В результате весь мой дизаин на help.htm исчезает и остается только голая форма на index.php.
Итог нескольких вариантов - я только окончательно запутался.  
 
Заранее благодарен.

Всего записей: 946 | Зарегистр. 16-10-2002 | Отправлено: 23:45 04-04-2005
Hakkinen

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имею на сайте анкету на PHP с таким кодом:  
 
<?php  
 
if (isset ($name))  
{  
$name = substr($name,0,20); //Не может быть более 20 символов  
if (empty($name))  
{  
echo "<center><b>Не указано имя !!!<p>";  
echo "<a href=anketa.html>Вернуться и правильно заполнить форму.</a>";  
exit;  
}  
}  
else  
{  
$name = "не указано";  
}  
 
$i = "не указано";  
if ($name == $i AND $email == $i AND $mess == $i)  
{  
echo "Ошибка ! Скрипту не были переданы параметры !";  
exit;  
}  
 
$to = "***@*****.ru";  
$subject = "Спасибо тра ля ля";  
$message = "Имя: $name;  
Город: $mess1;  
Электронный адрес: $mess2;  
Анкета: $mess3;  
IP-адрес: $REMOTE_ADDR";  
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";  
echo "<center><b>Спасибо.</a>";  
exit;  
?>  
 
 
Возник такой вопрос:  
Все заполненные анкеты приходят на моё e-mail, но в параметре «От кого» стоит «Nobody». Т.е. форма не передает письму почтовый адрес, который указывается в самой анкете. Как сделать, что бы анкеты приходили как будто с их e-mail’a. Это нужно для простоты и удобства.  
Пробовал создать строку:  
$from = "$mess2";  
Не помогло, письма стали содержать в теме письма e-mail

Всего записей: 200 | Зарегистр. 09-05-2003 | Отправлено: 01:02 22-04-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hakkinen

Цитата:
Все заполненные анкеты приходят на моё e-mail, но в параметре «От кого» стоит «Nobody». Т.е. форма не передает письму почтовый адрес, который указывается в самой анкете. Как сделать, что бы анкеты приходили как будто с их e-mail’a. Это нужно для простоты и удобства.  
Пробовал создать строку:  
$from = "$mess2";  
Не помогло, письма стали содержать в теме письма e-mail  

RTFM
http://us2.php.net/manual/en/function.mail.php
примеры внизу. часть заголовка From
 
nobody будет всегда (хотя бы при передаче локальным sendmail сообщения конечному SMTP серверу), так как функция mail вставляет мыло того пользователя, под которым запущен php... в данном случае и апач.
хочется чтобы его вообще не было - посылать с помощью, скажем, phpmailer через какой то smtp сервер.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:07 22-04-2005 | Исправлено: Cheery, 01:08 22-04-2005
xo4y

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
$from = "From: ".$mess2."\nReply-To: ".$mess2."\nX-Mailer: PHP";
mail($to, $subject, $message, $from);

Всего записей: 50 | Зарегистр. 27-01-2002 | Отправлено: 09:45 23-04-2005
Hakkinen

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xo4y
О, спасибо. Уже ближе к делу
Только к мылу почему-то еще приписывается .yandex.ru
Те было, например указано мыло asdf@sddf.ru , а приходит от asdf@sddf.ty.yandex.ru .
Яндекс, потому что, видать, мыло у меня на нем.  
 Что нужно подправить?

Всего записей: 200 | Зарегистр. 09-05-2003 | Отправлено: 01:44 24-04-2005
Pleshkov



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hakkinen

Код:
 
$email="admin@localhost"; //кому (мыло админа)
$from="$uname <$emailu>"; //$emailu - мыло юзверя; $uname - Имя юзверя
$topic="Форма обратной связи"; //тема письма
$headers ="From:".$from."\r\n";
$headers.="Reply-To:".$from."\r\n";
$headers.="MIME-Version:1.0\r\n";
$headers.="Content-Type:text/plain; charset=windows-1251\r\n";
$headers.="X-Priority: 3\r\n";
$headers.="X-MSMail-Priority: Normal\r\n";
$headers.="X-Mailer: PHP Mail Script\r\n";
$headers.="X-MimeOLE: Produced By phpFeedbackForm\r\n";
$headers.="X-AntiAbuse: Sender servername - www.domain.ru\r\n";
$headers.="X-User: none\r\n";
$message.="\r\n=====================================\r\n";
$message.="Имя отправителя: $uname\r\n";
$message.="E-mail отправителя: $emailu\r\n";
$body = $message."\r\n\r\n";
mail($email,$topic,$body,$headers);
 

 
Cheery
В этом коде почему то все нормально  (я имею ввиду адрес подставляется не nobody  а юзверя.)

----------
С уважением, Павел

Всего записей: 452 | Зарегистр. 15-06-2004 | Отправлено: 02:03 24-04-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pleshkov

Цитата:
В этом коде почему то все нормально  (я имею ввиду адрес подставляется не nobody  а юзверя.)

так и должно быть.. но не это имя будет конфигурировать при SMTP обмене в mail from:
а вообще - забей.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:12 24-04-2005
Hakkinen

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а вообще - забей.

Что значит забей? Кто мне подскажет? Ведь практически получилось получить мыло вместо Nobody?

Всего записей: 200 | Зарегистр. 09-05-2003 | Отправлено: 23:31 24-04-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru