WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




Отправка писем через PHP


Прислал: dina [ 08.06.2001 @ 07:44 ]
Раздел:: [ Статьи по PHP ]


Как отправить письмо через PHP, используя формы, и как при этом устранить возникающие проблемы с кодировкой?

Рассмотрим на простом примере, как отправить вопрос через формы на сайте. У нас будет 3 поля для ввода:
Ваше имя:
* E-mail:
* Вопрос:
Причем "Ваше имя" не является обязательным параметром.
Для простоты и удобства разместим форму и код прогараммы в одном файле. Важно указать кодировку страницы (windows-1251), чтобы далее не возникало проблем с перекодированием из win в koi (ниже)
Итак, приступим. Начало документа стандартное:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Отправка письма</title>
    <meta content="text/html;charset=windows-1251" http2-equiv="Content-Type">
</head>
<body>
Далее идет 2 логические части:
1 - вывод формы
2 - обработка формы и отправка письма

Вначале идет вывод формы.

Для удобства в начале определяем e-mail через переменную $mailto, на который будет отсылаться письмо из формы.
Далее мы определяем, была ли нажата кнопка "отправить".
В конце формы имеется кнопка "отправить", она имеет аттрибуты name="ok" и value="отправить". После нажатия на нее переменная $ok будет иметь значение "отправить". Если кнопка не нажата, то переменная не определена.
Таким образом, выражение if (empty($ok)) означает буквально "если кнопка отправить не была нажата". Функция empty() возвращает true, если переменная не определена, содержит 0 или пустоту.
<?
$mailto="name@server.ru";
if (empty($ok))
{
?>
Далее идет вывод формы, если выполнено предыдущее условие if (empty($ok)).
Переменная $PHP_SELF означает, что обработку формы производит текущий файл, т.е. тот же, на кот. расположена форма.
    <h3>Отправьте вопрос автору сайта</h3>
    Поля, отмеченные (*), обязательны для заполнения.
    <br><br>
    <form action="<?echo $PHP_SELF;?>" method="post">
    <table>
    <tr>
        <td>Ваше имя:</td>
        <td> <input type="text" name="username" size="30" maxlength="20"></td>
    </tr>
    <tr>
        <td>* E-mail:</td>
        <td><input type="text" name="mailfrom" size="30" maxlength="50"></td>
    </tr>
    <tr>
        <td>* Вопрос:</td>
        <td><textarea cols="50" rows="10" name="question"></textarea></td>
    </tr>
    </table>
    <input type="submit" name="ok" value="отправить">
    </form>
В противном случае, т.е. если была нажата кнопка, идет обработка формы и отправка письма
<?
}
else
{
Далее идет проверка на корректность заполнения поля "E-mail". Любители ругулярных выражений эту проверку поймут. Для остальных немного поясню:
Подразумевается, что e-mail должен быть такого вида:
слово@слово.слово
При этом слово может состоять из всех букв латинского алфавита и цифр и точка может быть не одна. (например слово@слово.слово.слово)
[a-z,0-9] - означает "любая буква латинского алфавита или цифра"
+ - означает, что [a-z,0-9] может встречаться 1 или более раз.

Если введен неправильный e-mail, то в переменную $error записывается ругательное сообщение.
    if(!preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $mailfrom))
    {
    $error = "Не верно заполнено поле: <b>E-mail</b><br>";
    }
Если поле "Вопрос" не заполнили, то к переменно $error добавляем еше одно ругательство:
    if (empty($question))
    {
        $error .= "Не заполнено поле: <b>Ваш вопрос</b><br>
";
    }
Если переменная $error не пустая, то мы ее выводим на экран и немедленно прекращаем дальнейшую обработку с помощью exit
    if ($error)
    {
        echo $error;
        echo "<br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>";         exit;     }
Ну а если таки $error осталась пустой и exit не сработал, то можно приступать к отправке письма, т.е. главной цели всего этого мероприятия...
Сформируем тему и тело сообщения:
    $subject="Вопрос от $mailfrom";
    $body="Имя:
$username

E-mail:
$mailfrom


Комментарии: $question";
А теперь самое главное, чтоб потом можно было прочитать письмо "по-русски" :) Функция convert_cyr_string перекодирует строку из win в koi (w-win, k-koi) Это необходимо, т.к. все почтовые клиенты по дефалту принимают письма в koi. А у нас вверху страницы стоит charset=windows-1251, поэтому функция грамотно переводит из win в koi Затем с помощью функции mail отправляется письмо на $mailto, указанный в начале файла. Многие пользователи положительно отзываются о промокоде 1xBet на сегодня. Им можно воспользоваться при регистрации новой учетной записи на сайте компании. Для этого необходимо ввести в соответствующее окошко следующий набор букв и цифр: промокод 1xbet бездепозитный бонус 2021 постоянно растет, поэтому выгодные предложения и бонусные комбинации распространяют даже известные блогеры. Чтобы получить депозит суммой 6,5 тыс. руб. Действующий промокод 1xBet при регистрации на сегодня вы всегда найдете на главной странице данного сайта. Поощрение доступно единожды при создании счета. Пройдите регистрацию на сайте оператора.
    $body=convert_cyr_string (stripslashes($body),w,k);
    $subject=convert_cyr_string (stripslashes($subject),w,k);
    $sucess = mail($mailto, $subject, $body, 
"From: $email X-Mailer: PHP/" . phpversion());
Ну и самое приятное... Если письмо успешно отправлено, то выводим благодарственную надпись и предлагаем вернуться..
    if ($sucess)
    {
        echo "Спасибо. Ваш вопрос отправлен.<br><br>";
        echo "<a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>";     }
Стандартный конец..
}
?>

</body>
</html>
P.S. Как наверно понял читатель, нужно выделить и скопировать все зеленые блоки в один файл по порядку и запустить его на сервере
Весь код является полностью проверенным и рабочим.


 :::::  Yuri пишет 09.06.2001 @ 04:59 
convert_cyr_string (stripslashes($body),w,k) - w и k должны быть типа string, поэтому будет работать только при convert_cyr_string (stripslashes($body),"w","k")
 :::::  dina пишет 09.06.2001 @ 05:57 
Функция convert_cyr_string (stripslashes($body),w,k) работает с w и k без ковычек, в кавычках там нет необходимости, т.к. 2-ой и 3-ий аргумент этой функции авт-ки преобразуется в строку , потому как там ничего кроме строк не может быть:
k - koi8-r,
w - windows-1251 ,
i - iso8859-5,
a - x-cp866,
d - x-cp866,
m - x-mac-cyrillic

более подробно о функции convert_cyr_string смотрите: http://www.php.net/manual/en/function.convert-cyr-string.php
 :::::  Igor пишет 10.06.2001 @ 02:19 
Странно, все скопировал и запустил, но не работает :( Пишет - ошибка парсера на строчках где печатается ссылка "вернуться назад", я их удалил, но пишет ошибка парсера в строчке завершающего тега </html>. Не понял в чем дело. Запускал как на компе (Апач + ПХП4 под виндой) так и на сервере (Апач+ПХП4 под юникс) Спецы, посмотрите, может где синтаксис неверный ? А то я в ПХП мало пока что разбираюсь.
 :::::  Алексей пишет 10.06.2001 @ 18:37 
А как отправить письмо с запросом о подтверждении о доставке? Помогите! Очень надо!
 :::::  s/m пишет 11.06.2001 @ 04:12 
Про ошибки:
такая строка работать не будет .
echo "<a href="javascript:history.go(-1)" class="text">Вернуться назад</a>";
надо так:
echo "<a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
Ну и естественно такие штуки надо поправить везде по тексту кода.
Кроме того, как я подозреваю, тот товарищ что писал "Странно, все скопировал и запустил, но не работает :( " , не убрал лишние переводы строк.
Пожелания к автору текста: не испробовав - не говори что работает.
Кроме того, если уж говорите, что достаточно скопировать и заработает - кладите листинги прямо в <textarea>.
Меньше гиморроя будет потом объяснять что как и где надо было поправить чтобы все работало.
 :::::  NAS пишет 11.06.2001 @ 07:18 
Извиняюсь перед автором и читателями, но это мой скрипт публикаций порезал слеши. Сейчас я всё вроде поправил. А вообще этот скрипт недавно добавлен в каталог.
 :::::  Igor пишет 12.06.2001 @ 13:36 
Тот товарищ что написал " Странно ..." несмотря на недельное знакомство с ПХП (куда ж мне торопиться то?) переделал нафиг этот скрипт немного и он заработал (мне еще поле емайл кому отправлять нужно было), немного криовато конечно но всетаки лучше чем ничего ;) А кодов ВК при копировании не было обнаружено, товарищь программер! :) Тэнкс за хелп!
-----
З.Ы. Народ, кто знает как отправлять файлы на мыло, после того как загрузишь их во временную директорию? С помощью функции "открыть процесс" popen(путь до сендм,имя файла)? Хелп плз... скриптик нужен. В установленном ПХП4 есть такие классы, какой использовать?
 :::::  dina пишет 13.06.2001 @ 10:44 
Алексей !

отправку письма с запросом о подтверждении о доставке можно легко переделать из этого скрипта, заменив поля: Ваше имя,* E-mail,* Вопрос на нужные вам или добавить новые... аналогия полная.


s/m !

- лишние переводы строк не "мешают" скрипту правильно работать. Там ведь каждая строка точкой с запятой отделяется.
- как пишет NAS, слеши пропали при пересылке скрипта. Скрипт точно рабочий полностью (на PHP4 точно), я специально его скопировала по частям с окна и запустила еще раз.. все пашет

Igor !

А что значит:
А кодов ВК при копировании не было обнаружено
???
 :::::  Igor пишет 14.06.2001 @ 14:27 
Igor !
А что значит:
А кодов ВК при копировании не было обнаружено
???
------
А я думал что товарищ программер имеет ввиду, что я при копировании и вставке вляпал скрипт вместе с пустыми строками и поэтому он и не работал (так он и на самом деле не работал, даже когда я ошибочные строки удалял и пустые тоже кстати, я его потом разобрал на запчасти и он заработал) Но теперь все прекрасно работает. Кстати переводит все в КОИ8-Р!
А я и не знал что на ПХП можно так делать:
<? если ()
{
?>
тра-тата-ля-ля-ля ХТМЛ...
<?
}
иначе ()
ляляля скрипт
?>
Это типа выполнить ХТМЛ как функцию. Думал из-за этого глюки....а оказывается это работает, классно. Только как вот аттачменты отправлять? Напрямую через сендмайл или СМТП ? Кто знает?

 :::::  NL пишет 17.06.2001 @ 15:35 
А у меня ещё сложнее... Вроде всё как надо, а он мне говорит, что коннекта нет. Подозреваю в грехах свой Apache, который не настроен под прокси (я через него в И-нет выхожу).. Как же его настроить?
 :::::  dina пишет 19.06.2001 @ 01:54 
небольшое улучшение: в мэйлах еще могут быть

. -_ (в именах)
-_ (в доменах)

поэтому просто добавим эти символы в проверке:

if(!preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/",$mailfrom))
 :::::  stron пишет 24.06.2001 @ 14:22 
Да, действительно, никто не подскажет как притачить файл и не один, и чтоб вся эта фигня пошла куда надо и как надо : ) А точнее сделать мини рассылку, как добавить и считывать с простого файла адреса понятно, как сделать цикл чтоб отправлял по всем перечисленным адресам тоже понятно, но как сделдать чтоб отправлял с притаченными файлами....может кто мудрый подскажет?
 :::::  Igor пишет 01.07.2001 @ 07:56 
Кому интересно как отправлять письма с аттачем, читайте здесь http://php.spb.ru/php/mail.html
Там еще много всяких интересных фичей описано.
 :::::  Mike пишет 31.07.2001 @ 03:02 
Что-то ничего не конвертируется...
 :::::  Vlad пишет 08.08.2001 @ 05:51 
Лично у меня на mail.yandex.ru ничего читать не хотело, по я в заголовок не вставил Content-Type: text слеш html; charset=koi8-r
 :::::  kostya пишет 15.08.2001 @ 11:59 
Я долго искал эту инфу, в книжке по ПХП полная лажа - вообще не работает.
По этому скрипту все в порядке.
 :::::  Euegene пишет 16.08.2001 @ 14:15 
Хорошая литература...Очень помогла... Благодарен чрезмерно..
 :::::  Tornado пишет 03.09.2001 @ 18:58 
Спасибо большое за статью. Очень помогла.
 :::::  Наталья пишет 05.10.2001 @ 16:40 
Спасибо большре. Это именно то, что я искала. Правда я еще не проверяла :)))
 :::::  Natasha пишет 17.10.2001 @ 03:53 
Была еще ошибка:
Надо не
<a href="javascript:history.go(-1)" class="text">Вернуться назад</a>
а:

--------------------------------------------------------------------
There are several ways to do this.

You can create a hyperlink to an image or text using the following code:

<a href="Javascript:history.go(-1)">Back</a>
Note: (-1) means go back one page. So, for example (-2) would be go back two pages.

or:

You can use:
<a href='javascript:history.back()'>Back</a>

For "Buttons" you can use:
<form method="POST" action="Javascript:history.go(-1)">
<input type="submit" value="Back" name="Back">
</form>
--------------------------------------------------------------------------

 :::::  dina пишет 17.10.2001 @ 18:59 
Natasha, объясни, пожалуйста, в чем же разница между
<a href="javascript:history.go(-1)" class="text">Вернуться назад</a>
и
<a href="Javascript:history.go(-1)">Back</a>

в чем же тут конкретно ошибка?
 :::::  SunnyCurls пишет 17.12.2001 @ 14:14 
Ну нифига сколько тут девушек появилось ;)
 :::::  alex пишет 05.01.2002 @ 05:43 
Dina! Вам бы не скрипты писать, а в песочнице ковырятся. Из всех присутствующих здесь ламеров только один (Vlad) умудрился заметить, что ваш скриптец сильно глючит в кодировкой...
 :::::  Daan пишет 22.01.2002 @ 20:09 
А вы девушки действительно немного поковыряйтесь в песочнице, да о стилях почитайте...
 :::::  Gary пишет 21.04.2002 @ 15:54 
четвёртый аргумент фунции mail() можно писать так:
"From: $email\nContent-Type: text/html; charset=windows-1251"
и тогда можно не ковертировать письмо в КОИ-8. Почтовый клиент автоматом поставит правильную кодировку.

 :::::  mj пишет 26.04.2002 @ 05:31 
При отпраке через Mail с wallst.ru и webservis.ru письма приходят через сутки (в лучшем случае), можно подумать там модератор сидит и всё перечитывает...
Лучше отправлять через сокеты.
http://php.spb.ru/php/mail.html
 :::::  Ruslan пишет 20.11.2002 @ 17:45 
Здравствуйте!
Я по поводу отправки данных из почты на емайл
Сделал все как описано, но пишет, что сообщение не было отправлено.
У меня стоит апач, пчп4.... Может где-то надо настройки поменять.
Уже столько вариантов перепробовал..ни один не работает...подскажите пожалуйста, ак заставить ф-ию mail заработать
 :::::  berez пишет 02.12.2002 @ 12:03 
помогите!!!
не работает почему-то?????
выдает отправка письма!!!!
и все !!! ни фига ен отправляет????!!!
 :::::  Doctor[X] пишет 07.02.2003 @ 18:00 
это всё из-за

"From: $email
X-Mailer: PHP/" . phpversion());

у меня тоже на этой фигне ошибку показывает :(
 :::::  helen пишет 16.02.2003 @ 17:53 
как сделать, чтобы после отправки письма на странице появлялось не "назад", а та же форма, которую заполняли, и еще, может вы напишите как сделат, чтобы это было как подписка на рассылку, т.е. просто поле E-mail и кнопка "Подписаться".
Буду признательна)
 :::::  Doctor[X] пишет 17.02.2003 @ 17:00 
2 helen
просто!
если ты этот скрипт вставишь в шаблон своей странички. то уже по навигации можно будет пыполсти на другую страничку.!


я думалд что у меня нерабюотет :( а окозалось что я се smtp а апаче не прописал :(

2 Natasha & dina
разници в принцепе нет :)
 :::::  boogus пишет 04.03.2003 @ 00:37 
Люди!! а как отправить приклрепленный файл, ну допустим ЗИПовский???
 :::::  nestor пишет 16.04.2003 @ 00:12 
Умница dina. Спасибо за ликбез, мне, бездарю, очнь помогло.
 :::::  nikneim пишет 03.05.2003 @ 20:13 
А как в отправляемое письмо добавлять изображения (например, отсылать открытки)?
И как отправить прикрепленный файл?
И ещё, можно отпралять страницы целиком?
 :::::  Lex пишет 12.05.2003 @ 06:35 
При запуске на Apache+PHP4 всё нормально. Но при нажатии на кнопке пишет что ошибка в неизвестном индетификаторе: PHP_SELF.
Почему?
 :::::  leo пишет 25.06.2003 @ 07:24 
Я новичок в этом, если не трудно, можно скинуть мне на мыло готовый работающий файл, и в каком редакторе лучше с ним работать. Заранее благодарен.
 :::::  mopo3ko пишет 09.07.2003 @ 19:07 
Товарищи, я в ПХП не продвинут, обясните как настроить ПХП и АПАЧ для совместной работы и на каком бесплатном хосте поддерживается ПХП 4 и надоли к себе на своём сайте держать файлы ПХП 4 или где, я в этом ДУБ. Тук-Тук-Тук - слышите...
 :::::  mopo3ko пишет 10.07.2003 @ 01:12 
И ещё сайт в окне IE у меня вышел со странностями, первая ссылка вернуться вовсе не ссылка, а дальше идёт текст ": exist и т.д. почти до конца, не были бы вы столь любезны весь текст скомпановать в textarea и написать в каком расширении должен быть сайт...
 :::::  cat-x пишет 09.08.2003 @ 17:52 
"From: $email\nContent-Type: text/html; charset=windows-1251" однозначно рулит
 :::::  Александр пишет 23.09.2003 @ 16:39 
Вопрос, всё же, остаётся актуальным, знает кто-нибудь или нет?
Как прикрепить файл (например фото) или zip-архив к письму, отправляемому с помощью PHP?
Буду признателен всем, кто ответит на этот вопрос.


 :::::  peter пишет 13.10.2003 @ 07:54 
Вам что делать нечего! О каких-то скриптах спорить? Сидели бы и чай пили... :)
 :::::  Grank пишет 17.10.2003 @ 16:02 
Приятно общаться со "спецами" CSS, а именно alexом и danom, не вникнув в тему уже начинают обижать девушек, если бы вы поротирали свои глаза, то возможно заметили бы что таблица стилей нигде не подключается, поэтому
<a href="javascript:history.go(-1)" class="text">Вернуться назад</a>
и
<a href="Javascript:history.go(-1)">Back</a>
ничем не отличаются, разве что языком....
Так что в другой раз не стоит гнать бред, а если вы такие умные, то оъясняйте что к чему, а не обламывайте...(хотя в этот раз, сами себя обламали :-)))))))))))))))))))))))
 :::::  dina пишет 20.10.2003 @ 10:27 
Коллеги, спасибо всем за отзывы, рады стараться...
class="text" - тут не нужно, просто забыла удалить по ошибке.
 :::::  Riccon пишет 22.10.2003 @ 17:33 
Чё накинулись то? В отличии от екоторых скрипт написан без ошибок
 :::::  andrew пишет 21.11.2003 @ 14:46 
Всем привет!

Я не программер на ПХП, более на иных системных ленгвичах.
Что удивляет, это то девушки атакуют все больше :)
Уже и на пхп мастарами заделались!
Ну удачи в деле.
П.С. Хотя на кой вам это?

:)
 :::::  Andy Resh пишет 25.11.2003 @ 08:18 
Девушки и юноши.... здравствуйте!
Я не новичок, но и не спец, по этому ничего не могу понять!
1) Ваш скртпт правильный!
2) Мной чуть правленный...
3) Письмо НЕ ПРИШЛО!!!
4) Никаких ошибок не пишет, но и "назад" не выводит!
Просто, страница перегружается после "Отправить" и все! НИЧЕГО!!!
 :::::  monarchp пишет 11.01.2004 @ 11:59 
аттачи как добавить.. ?
 :::::  ivan пишет 03.03.2004 @ 01:44 
Добрый день.Вопросик есть.После работы скрипта сообщения на мыло адресата не приходят.Приходят на мыло того, чья учетная запись на этом компьюторе.Что-то типа : пароль инвалид.Чего делать?

"From: $email
X-Mailer: PHP/" . phpversion());- если без этого, а просто
mail($mailto, $subject, $body); тоже не работает - вообще ничего и никуда не приходит.
Чего делать?

 :::::  San пишет 11.03.2004 @ 20:28 
Помогите мне зделать регистрация на моюм сайте на php ПОЖАЛУЙСТА!!!!!!
 :::::  San пишет 11.03.2004 @ 20:29 
Помогите мне сделать регистрацию на мой сайт в php. ПОЖАЛУЙСТА!!!!!!
 :::::  Eugen пишет 16.03.2004 @ 16:46 
Привет Всем !!!

кто может подсказать, как сделать ленту новостей с архивом, и с управляемым контентом
 :::::  IRC_alexx пишет 13.04.2004 @ 02:17 
уважаемые люди если у вас есть IRC соединение с IRC серверами
то предлагаем вам Совершенно Новый IRC сервер -(Новосибирский)
irc.novosib.net.ru порт 6667 Официальный канал сервера #novosib
Также этот сервер доступен совершенно для всех! Желаем удачи и успехов!
 :::::  baycity пишет 25.06.2004 @ 11:46 
Вопрос от младенца.

Если я правильно понимаю, то $PHP_SELF не даст нужного результата, если скрипт расположен в .tpl-файле?
Если я неправ, прошу поправить.
А если прав, прошу подсказать начинающему, можно ли реализовать такое действие в этом случае и как.

Заранее спасибо.
 :::::  Александр пишет 25.11.2004 @ 02:36 
А если вот у кого бесплатный хостинг без поддержки скриптов?
Поискал в сети и нашел выход: http://www.stealsman.lytkarino.ru/sendmail.php
Здесь все ясно и понятно написано. Это если кому может понадобиться.
 :::::  oEN пишет 22.06.2006 @ 21:22 
бля....прочитайте всё это за меня и всё остальное....я запарился...жарко и надоело!Лучше бы на си писать начал...хотя тему пишите, то вот насчёт валлста, там правда через сутки приходит мэл, а то там хостинг хорошой - не обламывайте....
 :::::  Roman пишет 24.07.2006 @ 00:52 
это всё из-за

"From: $email
X-Mailer: PHP/" . phpversion());

у меня тоже на этой фигне ошибку показывает :(
________________________________________
да, вы $email замените на свой почтовый адрес, все будет!..


Я сделал так:
---------------------------
$mailtext="Текст письма";
$mailtext=convert_cyr_string(stripslashes($mailtext),'w','k');

$mailsubject="Тема письма";
$mailsubject=convert_cyr_string(stripslashes($mailsubject),'w','k');

$headers="From: myemail@mail.ru
X-Mailer: PHP/".phpversion()."
Reply-to: myemail@mail.ru
Return-Path: myemail@mail.ru
Message-ID: ".md5(uniqid(time()))."@site.ru
MIME-Version: 1.0
Content-type: text/plain; charset=koi8-r
Content-transfer-encoding: 8bit
Date: ".date('r',time())."
X-Priority: 0
X-MSMail-Priority: Normal
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
X-Sender: myemail@mail.ru";

mail($email, $mailsubject, $mailtext, $headers);
------------------------------------------
эти заголовки (можно еще и другие навтыкать :-) ) не дадут серверу пометить письмо как спам - т.е. больше шансов того, что письмо придет...
Естест-но, замените в исходнике адреса на ваши (можно воткнуть любой!!!)
 :::::  Balbess пишет 24.10.2006 @ 14:44 
Я пользуюсь редактором для написания скриптов и HTML
так вот

после строки class=\"text\">Вернуться назад</a>"; перед функцией exit
возникает ощущения, что редактор воспринимает всё написанное как обычный текст и так до самого конца.... соотвецтвенно весь этот блок у меня под формой отправки как обычный текст с гиперссылками...
подскажите что я проглядел... а то уже второй день сижу ничего понять не могу...
 :::::  Vlad пишет 22.01.2007 @ 15:40 
Прекрасно работает с первого предъявления. Умница
 :::::  More пишет 07.02.2007 @ 15:39 
Таже беда после формы на страничке появился текст

Вернуться назад"; exit; } $subject="Вопрос от $mailfrom"; $body="Имя: $username E-mail: $mailfrom Комментарии: $question"; $body=convert_cyr_string (stripslashes($body),w,k); $subject=convert_cyr_string (stripslashes($subject),w,k); $sucess = mail($mailto, $subject, $body, "From: $email X-Mailer: PHP/" . phpversion()); if ($sucess) { echo "Спасибо. Ваш вопрос отправлен.

"; echo "Вернуться назад"; } } ?>

кто понял почему?
Balbess а ты разобрался?
 :::::  Arsen пишет 14.02.2007 @ 16:52 
dina Спасбо большое все очень просто только, что загрузил все прекрасно работает!

Что надо добавить в скрипте, чтоб в Outlooke в поле ОТ указывался, бы адрес эл.почты
Спасибо еше раз
 :::::  Kostya пишет 21.07.2007 @ 09:51 
Помогите плз кто чем может. Пользуюсь полем textarea для отправки вопроса из формы на мэйл. Так вот введенный в это поле текст вопроса произвольно режется. Метод отправки пост. Может причина на стадии конвертирования кодировки?
 :::::  zvr пишет 21.08.2007 @ 19:58 
А у меня почему-то ничего не работало, пока не дописал:
$ok=$_POST['ok'];
К чему бы это? Может скажет кто?
 :::::  dina пишет 20.09.2007 @ 17:54 
потому что у тебя выключен параметр register_globals в php
 :::::  Горыныч пишет 02.10.2007 @ 12:57 
Спасибо за скрипт, заработал с первого раза, далее немного адаптировал под себя! 8-)
 :::::  володя пишет 28.10.2007 @ 04:24 
подскажите как можно отправить много писем через мой локальный компьютер ?
--------------------------------------------------------------------------------------------------------

 :::::  Арсений пишет 28.11.2007 @ 23:07 
Спасибо! Скрипт очень пригодился.
 :::::  Victor пишет 02.02.2008 @ 09:22 
Ищу в сети скрипт. Постоянно натыкаюсь на эту статью. Скрипт то битый, не рабтает.
 :::::  PHP'шкин пишет 07.03.2008 @ 00:37 
Скрипту нужна минимильная обработка, читайте комменты и будем вам:)
 :::::  PHP'шкин пишет 07.03.2008 @ 11:39 
Хотя хз рабочий он или нет - я вот письмо уже два дня жду.
 :::::  PHP'шкин пишет 10.03.2008 @ 14:34 
В скрипте несколько промахов:
1. Вместо if (empty($ok)) пишем, например, if (!isset( $_GET['send'])), для этого в атрибуте action формы заменяем PHP_SELF на "?send".
2. При register_globals_of, что очень часто имеет место, в самом начале скрипта определяем переменные:
$username = $_POST['username'];
$mailfrom = $_POST['mailfrom'];
$question = $_POST['question'];
3. Сделать правильные заголовки - где-то в комментах они были написаны, поэтому останавливаться не буду. Всем удачи.
 :::::  tommy пишет 27.03.2008 @ 00:15 
как через сокеты почту отправить?
 :::::  max пишет 01.04.2008 @ 09:09 
Напишите подробнее про кодировку, а то письмо отправляются а вот кодировка не та...
 :::::  Рома пишет 18.05.2009 @ 02:04 
вот эта ссылка помогает понять что с кодировками http://2cyr.com/decode/?lang=ru
и функция iconv помогает менять на нужную кодировку $body=iconv('UTF-8', 'windows-1251', $body);
 :::::  Илья пишет 19.07.2009 @ 00:17 
Люди плиц пришлите пожалуйста на ilyadz@mail.ru полный текст РАБОЧЕЙ формы отправки писем с сайта!!! И подскажите я смогу проверить работоспособность скрипта с бесплатного хостинга, поддерживающего ПХП такие как www.wallst.ru или www.webservis.ru.. ЗАРАНЕЕ ОГРОМНЕЙШЕЕ СПАСИБО!!!
 :::::  Александр пишет 17.08.2009 @ 02:47 

С моего сайта. Всё работает.


zakaz.php

<form action="zakaz_obrab.php" method="post" name="form_com">
<p class='dob_comm'><label>Ваше имя:<BR></label>
<input name="author" type="text" size="30" maxlength="40"></p>
<p class='dob_comm'><label>Ваш телефон:<BR></label>
<input name="telefon" type="text" size="30" maxlength="40"></p>
<p class='dob_comm'><label>Удобное время звонка:<BR></label>
<input name="time" type="text" size="30" maxlength="40"></p>
<p class='dob_comm'><label>Комментариии:<BR>
<textarea name="text" cols="50" rows="4"></textarea></label></p>
<p><input name="sub_com" type="submit" value="Отправить" class="button" title="Нажмите, чтобы отправить"></p>
</form>


zakaz_obrab.php

<?php
if (isset($_POST['author'])) {$author = $_POST['author'];}
if (isset($_POST['telefon'])) {$telefon = $_POST['telefon'];}
if (isset($_POST['time'])) {$time = $_POST['time'];}
if (isset($_POST['text'])) {$text = $_POST['text'];}
if (isset($_POST['sub_com'])) {$sub_com = $_POST['sub_com'];}

if (isset($sub_com))
{
if (isset($author)) {trim($author);}
else {$author = "";}
if (isset($telefon)) {trim($telefon);}
else {$telefon = "";}
if (isset($time)) {trim($time);}
else {$time = "";}
if (isset($text)) {trim($text);}
else {$text = "";}
if (empty($author) or empty($telefon) or empty($time) or empty($text))
{exit("<center><h2><BR><BR><BR><BR><BR>Заполните все поля!</h2></center>");}

/* Обрабатываем переменные спец. функциями, чтобы предотвратить атаки злоумышленников */
$author = stripslashes($author);
$text = stripslashes($text);
$author = htmlspecialchars($author);
$text = htmlspecialchars($text);
$telefon = stripslashes($telefon);
$time = stripslashes($time);
$telefon = htmlspecialchars($telefon);
$time = htmlspecialchars($time);
/* Отправляем информацию */
$address = "name@profmontaj.ru";
$subject = "Заявка на остекление балкона";
$message = "Имя клиента: - ".$author."\nТелефон клиента: - ".$telefon."\nУдобное время звонка: - ".$time."\nКомментарий: - ".$text;
$subject=convert_cyr_string (stripslashes($subject),w,k);
mail ($address,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");
echo "<html><head>
<meta http-equiv='Refresh' content='1; URL=index.php'>
</head></html>
<center><h2><BR><BR><BR><BR><BR>Ваша заявка была успешно отправлена!</h2></center>";
}
?>
 :::::  Elvis пишет 24.09.2009 @ 19:32 
А если у меня весь сайт в кодировке utf-8 ?
 :::::  александр пишет 06.12.2009 @ 18:19 
Теперь точно название темы в письме будет читабельно!!!

...
/* Отправляем информацию */

$subject = "Заявка";
$header="Content-type: text/html; charset=\"windows-1251\"";
$header.="From: From <from@mail.ru>";
$header.="Subject: ".$subject;
$header.="Content-type: text/html; charset=\"windows-1251\"";
$address = "zakaz@promelnn.ru";
$message = "<body>
<u>Имя:</u><em><b> - ".$author."</b></em><br />
<u>E-mail:</u><em><b> - ".$telefon."</b></em><br />
<u>Удобное время звонка:</u><em><b> - ".$time."</b></em><br />
<u>Сообщение:</u><em><b> - ".$text."</b></em>
</body>";
mail ($address,$subject,$message,$header);
echo "<html>
<head>
<link href='style.css' rel='stylesheet' type='text/css'>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<link href='style.css' rel='stylesheet' type='text/css'>
<meta http-equiv='Refresh' content='3; URL=./'>
</head>
<body>
<center><BR><BR><img src='img/screens.png'><h4>Ваше письмо было успешно отправлено!</h4>
<BR>Через несколько секунд Вы будете автоматически перемещены на главную страницу сайта.</center>
</body>
</html>";
}
?>
 :::::  Игорь пишет 07.04.2011 @ 14:55 
Все отлично работает, спасибо
 :::::  nebo52 пишет 20.09.2011 @ 01:55 
Спасибо, помогло
 :::::  Сергей пишет 23.12.2011 @ 22:30 
Здравствуйте!
Скиньте пожалуйста на E-mail 1sershe1@mail.ru полную форму отправки на почту, что то не клеится у меня. Спасибо!
Имя:
Email:
URL

Введите сумму двух чисел девять и шесть (девять+шесть=?)
Запомнить мою информацию

* Html запрещен* Ваш E-mail опубликован не будет.

Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
Design © 2001 by Parallax Design Studio (aka Spectator.ru)
Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
Сгенерировано за: 0.0848799