2014-11-06 3 views
0

Как создать форму в HTML, которая отправит по электронной почте содержимое формы по электронной почте? Вот что у меня есть., отправляя по электронной почте содержимое формы

<form action="mailto:[email protected]" enctype="text/plain" method="post"> 
    <input name = "subject" placeholder = "Your Name"></input> 
    <br> 
    <textarea name = "message" placeholder = "Email Us." style = "height:100px;"></textarea> 
    <input type="submit" value="Submit" placeholder = "Submit"></input> 
    </form> 

Могу ли я сделать это исключительно в HTML с помощью mailto: action? или мне нужны некоторые php, такие как

mail('[email protected]', $_POST['subject'], $_POST['message']); 

Любые предложения?

+0

'mailto:' ссылки часто работают только в том случае, если у пользователя настроен почтовый клиент. Многие этого не делают. Чтобы быть надежным, вам нужен серверный скрипт для обработки формы и отправки почты. PHP - это один выбор - есть и другие. –

ответ

1

Пожалуйста, попробуйте использовать заголовок, а также отправить электронное письмо.

<?php 
$to  = '[email protected]'; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$headers = 'From: [email protected]' . "\r\n"; 
$retval = mail($to, $subject, $message, $headers); 
if($retval == true) 
{ 
    echo "Message sent successfully..."; 
} 
else 
{ 
    echo "Message could not be sent..."; 
} 
?> 
1

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

<form name="contactform" method="post" action="send_form_email.php"> 

<table width="450px"> 

<tr> 

<td valign="top"> 

<label for="first_name">First Name *</label> 

</td> 

<td valign="top"> 

<input type="text" name="first_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top""> 

<label for="last_name">Last Name *</label> 

</td> 

<td valign="top"> 

<input type="text" name="last_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

<label for="email">Email Address *</label> 

</td> 

<td valign="top"> 

<input type="text" name="email" maxlength="80" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

<label for="telephone">Telephone Number</label> 

</td> 

<td valign="top"> 

<input type="text" name="telephone" maxlength="30" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

<label for="comments">Comments *</label> 

</td> 

<td valign="top"> 

<textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 

</td> 

</tr> 

<tr> 

<td colspan="2" style="text-align:center"> 

<input type="submit" value="Submit"> 
<a href="http://www.freecontactform.com/email_form.php">Email Form</a> 

</td> 

</tr> 

</table> 

Таким образом, существует ваша основная форма.

Вот ваш основной php. Поместите его в тот же каталог, что и ваш .html-файл: send_form_email.php (вы должны использовать это имя в точности) Обязательно отредактируйте части, указанные в вашей электронной почте и строке темы.

<?php 

if(isset($_POST['email'])) { 



// EDIT THE 2 LINES BELOW AS REQUIRED 

$email_to = "[email protected]"; 

$email_subject = "Your email subject line"; 





function died($error) { 

    // your error code can go here 

    echo "We are very sorry, but there were error(s) found with the form you submitted. "; 

    echo "These errors appear below.<br /><br />"; 

    echo $error."<br /><br />"; 

    echo "Please go back and fix these errors.<br /><br />"; 

    die(); 

} 



// validation expected data exists 

if(!isset($_POST['first_name']) || 

    !isset($_POST['last_name']) || 

    !isset($_POST['email']) || 

    !isset($_POST['telephone']) || 

    !isset($_POST['comments'])) { 

    died('We are sorry, but there appears to be a problem with the form you submitted.');  

} 



$first_name = $_POST['first_name']; // required 

$last_name = $_POST['last_name']; // required 

$email_from = $_POST['email']; // required 

$telephone = $_POST['telephone']; // not required 

$comments = $_POST['comments']; // required 



$error_message = ""; 

$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 

if(!preg_match($email_exp,$email_from)) { 

$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 

} 

$string_exp = "/^[A-Za-z .'-]+$/"; 

if(!preg_match($string_exp,$first_name)) { 

$error_message .= 'The First Name you entered does not appear to be valid.<br />'; 

} 

if(!preg_match($string_exp,$last_name)) { 

$error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 

} 

if(strlen($comments) < 2) { 

$error_message .= 'The Comments you entered do not appear to be valid.<br />'; 

} 

if(strlen($error_message) > 0) { 

died($error_message); 

} 

$email_message = "Form details below.\n\n"; 



function clean_string($string) { 

    $bad = array("content-type","bcc:","to:","cc:","href"); 

    return str_replace($bad,"",$string); 

} 



$email_message .= "First Name: ".clean_string($first_name)."\n"; 

$email_message .= "Last Name: ".clean_string($last_name)."\n"; 

$email_message .= "Email: ".clean_string($email_from)."\n"; 

$email_message .= "Telephone: ".clean_string($telephone)."\n"; 

$email_message .= "Comments: ".clean_string($comments)."\n"; 





// create email headers 

$headers = 'From: '.$email_from."\r\n". 

'Reply-To: '.$email_from."\r\n" . 

'X-Mailer: PHP/' . phpversion(); 

@mail($email_to, $email_subject, $email_message, $headers); 

?> 



<!-- include your own success html here --> 



Thank you for contacting us. We will be in touch with you very soon. 



<?php 

} 

?> 

Если вам нужно, чтобы увидеть этот учебник в полном комплекте, он находится здесь: http://www.freecontactform.com/email_form.php Для того, чтобы сделать заказ форме это довольно легко редактировать HTML и связанные с ним элементы PHP, но если вы этого не сделаете знать любой php и т. д. Я просто придерживаюсь готовых форм.

Смежные вопросы