Как сделать форму отправки сообщений с сайта на майл

Тема в разделе "PHP программирование", создана пользователем Molag_Bal, 14 окт 2007.

Статус темы:
Закрыта.
  1. Molag_Bal

    Molag_Bal Гость

    Ребята помогите :)
    Вот уже 3 день мучаюсь.Пытаюсь на сайте разместить форму отправки сообщений на майл/или сохранения данных внесенных в форме в некоем файле.Перепробывал множество исходников .Не помогает .ПОдскажите на пальцах, форму и куда что прописывать.Спасибо.
     
  2. Gisma

    Gisma Гость

    Тебе форма HTML-нужна? либо код для реакции на форму?
     
  3. Hetman

    Hetman Гость

    уточни у хостера есть ли такая возможность! я раз раз столкнулся с таким что мыло можно отправить только в пределах домена. Отправка писем на другие сервера была заблокирована! как объяснил хостер - с целью противодействия спаму. возможно тебе придётся протестить форму у хостера на безопастность.
     
  4. Molag_Bal

    Molag_Bal Гость

    Hetman - то есть я так понимаю ,что сообщения будут приходить на мыло которое создано в домене ,то есть на сервер где лежит сайт...а как создать можно по -подробнее
    Gisma- нужна любая форма с помощью которой я мог получать вписанные в нее данные
     
  5. Hetman

    Hetman Гость

    попробуй эту - url когда-то давно заливал на codeby.net уже даже не помню на сколько она работоспособна и функциональна
     
  6. Molag_Bal

    Molag_Bal Гость

    http://japandetails.com/123.html
    Ура...вот моя рабочая форма , подскажите а как можно сделать чтобы не вписыватьв вкладку TO \ имя ящика ,а чтобы он уже был забит в этой строке и затемнен - чтобы невозможно его было исправить .Спасибо
     
  7. @ero

    @ero Гость

    <input value="mail@mail.ru" readonly="readonly">
     
  8. Molag_Bal

    Molag_Bal Гость

    ЧЕ то не работает -точнее рабоатет но пересылает на страницу мол не ввели емайл и письмо не доходит
    вводтл в строке \\\\\\\\\\\\\<tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr> \\\\\\\\\\\\\\
    вместо \\\\\\\\\\\><input type=text name=mail_to maxlength=32>\\\\\\\\\\\\\\
     
  9. Molag_Bal

    Molag_Bal Гость

    может что то надо прописывать в скрипте 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: address@server.com";



    $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;

    }

    ?>\\\\\\\\\\\\\\\\\\\\
    ______________________________________________________________
    Может что то надо тут прописывать...
     
  10. Molag_Bal

    Molag_Bal Гость

    Ребята все решили и сразу набрасывается другой вопрос .Как сделать чтобы в форме http://japandetails.com/123.html вписать еще рамки для тектста и нажатием кнопки отправить все данные отправлялись .Я примитивно сделал копирование строки
    <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> может надо добавить значение colspan=2,3,4,5... и так же переименовать рамки с названием ,тока как ве это устроить у мня не получается
    подскажите как сделать
     
  11. Гость

    думаю для начала нужно html выучить
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей