За последние 24 часа нас посетили 20138 программистов и 1573 робота. Сейчас ищут 1880 программистов ...

помогите сделать форму отправки письма

Тема в разделе "Сделайте за меня", создана пользователем Invoker, 9 ноя 2016.

  1. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Здравствуйте. На нелюбимой работе дали задание. Сам пытался сделать, получается криво и не работает. Помогите пожалуйста.
    Нужно сделать текстовое поле и кнопку отправки письма с содержимым поля на почту. Почту в примере можете использовать рандомную или несуществующую, сам поменяю. Покажите пожалуйста код для этого дела если кто может. А с простого компьютера без соответствующего программного обеспечения (стоит только опенсервер) будет письмо отправляться?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    Окей Гугл уже не справляется то что в шапке написано?
    какая это работа ? врать не хорошо.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    если отправлять по SMTP, от mail.ru например
     
  4. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    инженер в доме творчества на полставки 7к
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Invoker есть такой инструмент google forms, можешь любые формы создать без знания языков программирования и все отправки форм будут записываться и доступны только тем кто их создал и ещё кому ты доступ дашь
     
  6. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    я сторонние ресурсы не должен использовать, мне нужно страничку на сайте организации забомбить
    вопрос еще актуален, жопа горит, не хочется с заданием медлить я на испытательном сроке и не хочется в грязь лицом упасть. могу свой код показать, но там нечем особо хвастаться.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    показывай, сайт ваш на хостинге?
     
  8. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    первый файл Html
    Код (Text):
    1. <html>
    2.  
    3. <form  action="otpravka.php" method="post>
    4.  
    5. Дата
    6. <INPUT TYPE="TEXT" NAME="data" VALUE="" SIZE="20">
    7. Название
    8. <INPUT TYPE="TEXT" NAME="nazvanie" VALUE="" SIZE="20"> <br>
    9. Заголовок
    10. <INPUT TYPE="TEXT" NAME="zagolovok" VALUE="" SIZE="20"><br>
    11. Текст
    12. <textarea rows="10" cols="45" name="tekst"></textarea><br>
    13. <input type="submit" value="Отправить">
    14.  
    15. </form>
    16.  
    17. </html>
    второй Php
    Код (Text):
    1. <?php
    2. $data = $_POST['data'];
    3. $nazvanie = $_POST['nazvanie'];
    4. $zagolovok = $_POST['zagolovok'];
    5. $tekst = $_POST['tekst'];
    6. mail("paleblueeyesjustdoit@yandex.ru", $nazvanie, $tekst);
    7. ?>
    сайт не на хостинге, это внутренний сайт, на локальном сервере
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Invoker там на компьютере есть интернет? кто-то настраивал чтобы через php почта отправлялась?

    по идее работать должно, если бы настроена была бы отправка почты
     
  10. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    интернет есть, насчет настройки не знаю, завтра у начальника уточню, спасибо за ответы
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    можно почту завести на mail.ru например и через неё отправлять, если надо может завтра код напишу, версия какая PHP установлена?
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    там openserver можно на последний релиз подключиться пхп 7
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @MAN_IFE_ST а sendmail там есть, чтобы SMTP настроить или с шифрованием как всегда будут проблемы?
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    в локале ею не приходилось попользоваться, сорь.
    Вся доступная инфа: http://imgur.com/a/ocEnz
     
  15. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    ребят помогите написать еще код для прикрепления файлов к письму, перерыл интернеты, доступных для чайника советов нет. в форме отправки письма должна быть кнопка прикрепления файлов (картинки)
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @MAN_IFE_ST там есть вкладка почты, видимо как-то можно настроить
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Invoker строка 68-79 файл index.php там нужно в четырёх местах прописать свои данные от почты яндекса
    --- Добавлено ---
    строку 96 надо закомментировать или удалить
     

    Вложения:

    • mail.zip
      Размер файла:
      134,9 КБ
      Просмотров:
      5
  18. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    здравствуйте еще раз! снова нужна помощь. сейчас код вот такой
    PHP:
    1. <form enctype="multipart/form-data"  action="" method="post">
    2.  
    3. Дата
    4. <INPUT TYPE="TEXT" NAME="data" VALUE="" SIZE="20"> <br>
    5. Название
    6. <INPUT TYPE="TEXT" NAME="nazvanie" VALUE="" SIZE="20"> <br>
    7. Заголовок
    8. <INPUT TYPE="TEXT" NAME="zagolovok" VALUE="" SIZE="20"><br>
    9. Текст
    10. <textarea rows="10" cols="45" name="tekst"></textarea><br>
    11. <input type="file" name="photo" multiple accept="image/*,image/jpeg"><br>
    12. <input type="submit" value="Отправить">
    13.  
    14.  
    15.  
    16. </form>
    17. <?php if (empty ($_POST['data'])) {
    18.     echo "Не введен Пароль";  
    19. }
    20. ?>
    до этого в экшн стоял пшп файл, теперь мне нужно убрать этот файл оставить только одну штмл страничку и весь код уместить на ней. нужно сделать проверку ввода текстовых полей (если не пустые то после нажатия на кнопку отправка выполняется функция майл, я ее еще не приписал, но предположим так) я не знаю как это реализовать, помогите пожалуйста. у меня в этом коде функция пшп на проверку ввода выполняется еще и до отправки, так не должно быть
     
  19. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    забыл дописать, что должны проверяться все 4 текстовых поля и затем должна осуществляться отправка
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Invoker мой код не подошёл? там отправка почты с файлом, проверка полей на заполнение
     
  21. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    подключил файл к сайту заполнил текстовое поле и прикрепил рандомный файл, выдает ошибку Mailer Error: You must provide at least one recipient email address.Ошибка!
    у нас почта внутренняя и письма должны отправляться именно по ней без выхода в интернет. блин не люблю пользоваться чужим кодом который не понимаю(
     
  22. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    отправляете через mail()? тогда надо убрать SMTP настройки, убери
    PHP:
    1. $mail->isSMTP();
    если не поможет, то вот это удали
    PHP:
    1.         //Tell PHPMailer to use SMTP
    2.         $mail->isSMTP();
    3.  
    4.         //Enable SMTP debugging
    5.         // 0 = off (for production use)
    6.         // 1 = client messages
    7.         // 2 = client and server messages
    8.         $mail->SMTPDebug = 0;
    9.  
    10.         //Ask for HTML-friendly debug output
    11.         $mail->Debugoutput = 'html';
    12.  
    13.         //Set the hostname of the mail server
    14.         $mail->Host = 'smtp.yandex.ru';
    15.         // use
    16.         // $mail->Host = gethostbyname('smtp.gmail.com');
    17.         // if your network does not support SMTP over IPv6
    18.  
    19.         //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
    20.         $mail->Port = 465;
    21.  
    22.         //Set the encryption system to use - ssl (deprecated) or tls
    23.         $mail->SMTPSecure = 'ssl';
    24.  
    25.         //Whether to use SMTP authentication
    26.         $mail->SMTPAuth = true;
    27.  
    28.         //Username to use for SMTP authentication - use full email address for gmail
    29.         $mail->Username = "логин от почты яндекса";
    30.  
    31.         //Password to use for SMTP authentication
    32.         $mail->Password = "пароль от почты яндекса";
    спрашивай, что не понятно
     
  23. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    убрал смтп, ошибка: Mailer Error: Could not instantiate mail function.Ошибка! сейчас попробую другие строки убрать
    --- Добавлено ---
    закомментировал оба вариаанта выдает ошибку: Mailer Error: Could not instantiate mail function.Ошибка!
     
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  25. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. require 'phpmailer/PHPMailerAutoload.php';
    4. ?>
    5. <!DOCTYPE html>
    6. <html>
    7. <head>
    8.     <title></title>
    9. </head>
    10. <body>
    11.  
    12. <?php
    13.  
    14. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    15.  
    16.     $required_fields = [
    17.         'text' => 'Сообщение',
    18.     ];
    19.  
    20.     $errors = array_diff_key($required_fields, $_POST);
    21.  
    22.     $uploaddir = 'uploads/';
    23.     $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    24.  
    25.     if ($_FILES['userfile']['error'] !=0 || !move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    26.         $errors[] = 'Ошибка при загрузки файла!';
    27.     }
    28.  
    29.     if (is_array($errors) && count($errors)>0) {
    30.         echo '<br>Заполните поля:';
    31.         foreach ($errors as $name) {
    32.             echo '<br>'.$name;
    33.         }
    34.     } else {
    35.  
    36.         //Create a new PHPMailer instance
    37.         $mail = new PHPMailer;
    38.  
    39.         //Set mail encoding
    40.         $mail->CharSet = 'UTF-8';
    41.  
    42.         //Tell PHPMailer to use SMTP
    43.         //$mail->isSMTP();
    44.  
    45.         //Enable SMTP debugging
    46.         // 0 = off (for production use)
    47.         // 1 = client messages
    48.         // 2 = client and server messages
    49.         /*$mail->SMTPDebug = 0;
    50.  
    51.         //Ask for HTML-friendly debug output
    52.         $mail->Debugoutput = 'html';
    53.  
    54.         //Set the hostname of the mail server
    55.         $mail->Host = 'smtp.yandex.ru';
    56.         // use
    57.         // $mail->Host = gethostbyname('smtp.gmail.com');
    58.         // if your network does not support SMTP over IPv6
    59.  
    60.         //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
    61.         $mail->Port = 465;
    62.  
    63.         //Set the encryption system to use - ssl (deprecated) or tls
    64.         $mail->SMTPSecure = 'ssl';
    65.  
    66.         //Whether to use SMTP authentication
    67.         $mail->SMTPAuth = true;
    68.  
    69.         //Username to use for SMTP authentication - use full email address for gmail
    70.         $mail->Username = "логин от почты яндекса";
    71.  
    72.         //Password to use for SMTP authentication
    73.         $mail->Password = "wenf";*/
    74.  
    75.         //Set who the message is to be sent from
    76.         $mail->setFrom('infweb@dtdm.ru');
    77.  
    78.         //Set who the message is to be sent to
    79.         $mail->addAddress('infweb@dtdm.ru');
    80.  
    81.         //Set the subject line
    82.         $mail->Subject = 'Форум php.ru';
    83.  
    84.         //Read an HTML message body from an external file, convert referenced images to embedded,
    85.         //convert HTML into a basic plain-text alternative body
    86.         $mail->msgHTML(nl2br($_POST['text']));
    87.  
    88.         //Replace the plain text body with one created manually
    89.         $mail->AltBody = $_POST['text'];
    90.  
    91.         //Attach an image file
    92.         $mail->addAttachment($uploadfile);
    93.  
    94.         //send the message, check for errors
    95.         if (!$mail->send()) {
    96.             echo "Mailer Error: " . $mail->ErrorInfo;
    97.             echo 'Ошибка!';
    98.         } else {
    99.             echo "Письмо отправили!";
    100.         }
    101.  
    102.         //delete file
    103.         @unlink($uploadfile);
    104.  
    105.     }
    106. }
    107.  
    108. ?>
    109.     <br>
    110.     <form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
    111.         <textarea name="text" rows="5" cols="35"></textarea>
    112.         <br>
    113.         <input type="file" name="userfile">
    114.         <br>
    115.         <input type="submit" value="Отправить">
    116.     </form>
    117. </body>
    118. </html>
    *