HTML-форма: разрешение пользователю отправить вам электронное письмо с уже созданным письмом

0

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

Я пробовал до сих пор:

<form action="MAILTO:[email protected]" method="post" enctype="text/plain">
    Username:<br>
    <input type="text" name="name"><br>
    Help comment:<br>
    <input type="text" name="mail" value="50"><br>
    <input type="submit" value="Send">
</form>

Но в Safari (не уверен в других браузерах) Это открывает новое окно, в котором пользователь просит заполнить электронное письмо. Как я могу это сделать, когда он просто отправит его на мой адрес электронной почты, если они не будут сами писать по электронной почте, а просто просто нажмут на отправку и получат мой адрес электронной почты ([email protected]) для пользователя, поэтому окно не появится или что-то еще.

  • 0
    Я думаю, что это зависит от многих вещей ... Я знаю, что есть способ сделать это в PHP без автоматического запроса пользователя на заполнение электронного письма. На каком сервере вы работаете?
  • 3
    вам нужно, чтобы это происходило на стороне сервера в ответ на вашу форму ... javascript (или браузер) не может отправлять почту
Показать ещё 10 комментариев
Теги:
forms
email

4 ответа

1
Лучший ответ

Для этого вам необходимо загрузить свой сайт на хост, поддерживающий php. Это невозможно сделать только с помощью сценариев на стороне клиента.

Код HTML:

<form id="form" method="post" action="sendMail.php">
         <fieldset>
             <label>name</label>
             <input type="text" name="name"/>
             <label>surname</label>
             <input type="text" name="surname"/>
             <label>e-mail</label>
             <input type="text" name="mail"/>
         </fieldset>
         <fieldset>
             <label>message</label>
             <textarea name="msg" cols="85" rows="8"></textarea>
         </fieldset>
         <fieldset>
             <input type="submit" value="send"/>
         </fieldset>
</form>

PHP-код:

<?php

error_reporting(E_ERROR | E_WARNING | E_PARSE);

$contact = array('name' => $_POST['name'],
    'surname' => $_POST['surname'],
    'mail' => $_POST['mail'],
    'msg' => $_POST['msg']
);

if ($contact['name'] != "" && $contact['surname'] != "" && $contact['mail'] != "" && $contact['msg'] != "") {

    $name = $contact['name'];
    $surname = $contact['surname'];
    $mail = $contact['mail'];
    $msg = $contact['msg'];

    // message can be built as you want, you can use html and inline css in it.
    $message = "name: ".$name."<br/>"."surname: ".$surname."<br/>".$msg;

    $to = "[email protected]";
    $subject = "subject";

    $headers = "From: " . $mail . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    mail($to, $subject, $message, $headers);
}
?>
0

Это позволит вам получить значения из текстовых полей ввода HTML, а затем передать эти значения для отправки электронной почты. Надеюсь, это поможет..

function BuildEmailBody() 
{
var  retBody;

retBody = document.getElementById("txtMessage").value;

return retBody;                                         
}

 function ProcessSubmition() {

    var stringEmailBody = BuildEmailBody();                 //the value of 'txtmessage' will asign to stringEmailbody

    var stringTo = document.getElementById("txtEmail").value;   //Email from textbox of id 'txtEmail'

     var stringSubject = document.getElementById("txtSubject").value;  //subject from textbox of id 'txtSubject'

    window.location.href = "mailto:" + stringTo + "?subject=" + stringSubject + "&body=" + stringEmailBody;

}
0

Чтобы упростить работу с вами, я привел пример функции почты PHP. Тем не менее, вы захотите рассмотреть возможность добавления нескольких вещей, таких как... ввод для темы, который всегда удобен. Кроме того, чтобы ваша область ввода стала текстовой областью, мне легче написать что-то, что я в полной мере вижу, и только в том, чтобы видеть ограниченное представление о том, что я сейчас пишу.

    $messageBody = $_POST['mail'];
    $to = '[email protected]';
    mail($to, $_POST['subject'], $messageBody);

Я думаю, что это прежде всего то, что вам действительно нужно сосредоточить. Учтите, что вы можете разместить четвертый параметр, как правило, CC, BCC или раздел FROM (в руководстве они относятся к нему как раздел "заголовки"), что также может быть полезно для вас, если вы не планируете попросите кого-нибудь написать свое имя в конце сообщения (возможно, не очень хорошего этикета).

Теперь ваша форма.. Ну.. Вы можете структурировать ее annnyyywwaaayyyy вы хотите.. на самом деле.. Есть несколько способов кожи кошки.. и создать форму.. Вот быстрая демонстрация возможности сделать вашу форму немного лучше. И если вы хотите немного больше рассуждать о том, почему я использовал неупорядоченный список по сравнению с таблицей, вот вопрос SO, который может дать вам некоторые плюсы и минусы в отношении лучшего и т.д. Моя JsFiddle также может дать вам представление о том, как сделать отображение вашей формы... чистым.

Кроме того, посмотрите, как вы хотите проверить свою форму... Вы хотите сделать это через PHP, где потребуется, чтобы пользователь нажал кнопку отправки, прежде чем он просмотрит все ошибки (возможно, для проверки имени пользователя или для фактического сообщения, таким образом избегая спама или нежелательных писем), или, может быть, вы захотите включить некоторые скрипты на стороне браузера с JavaScript, чтобы автоматически проверять эти вещи, даже не касаясь кнопки отправки.

Что касается базы данных, я бы посоветовал проверить и убедиться в том, что вы предотвращаете инъекции SQL (я не буду единственным человеком, чтобы это сделать), что поможет защитить вашу базу данных, если вы планируете загрузить это сообщение и сохранить его на некоторое время,

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

Наконец, пожалуйста, пожалуйста, ознакомьтесь с руководством. Фактически, я больше узнаю из руководства, а затем я смотрю на код других людей, потому что он дает реальные, рабочие примеры на выбор. Поэтому посетите этот сайт, чтобы сделать вашу жизнь немного легче.

0

Возможно, вам понадобится поддержка со стороны. Простой javascript + html не может этого сделать, потому что он не подключился к серверу smtp и не отправил ему сообщение. Поскольку вы выбираете php, я полагаю, что ваш бэкэнд. Таким образом, вы можете использовать почтовый компонент PHP и отправить свою форму на одну бэкэнд-страницу php и перевести данные из формы в почтовую функцию. Вы можете получить больше от php doc → http://www.php.net/manual/en/function.mail.php

Ещё вопросы

Сообщество Overcoder
Наверх
Меню