2013-08-29 5 views
0

У меня возникли проблемы с отправкой информации из моей формы PHP на адрес электронной почты. Я довольно новичок в PHP. Код ниже:Форма, не отправляющая адрес электронной почты

if(isset($_POST['submit'])) { 
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$myEmail = "[email protected]"; 

if (empty($name) || empty($subject) || empty($message)) { 
    $error = 'Please make sure to double check the fields for errors.'; 
} elseif (!filter_var($email1, FILTER_VALIDATE_EMAIL)) { 
    $error = 'Email is incorrect'; 
} else { 
    $headers .= "From: $email\r\n"; 
    $headers .= "Reply-To: $myEmail\r\n"; 
    $headers .= "Return-Path: $myEmail\r\n"; 
    $headers .= "CC: $email\r\n"; 
    $headers .= "BCC: $myEmail\r\n"; 

    if (mail($to,$subject,$message,$headers)) { 
    $to = $myEmail; 
    $subject = $subject; 
    $message = $message; 
    $from = $email; 
    $headers = "From:" . $from; 
    echo "Mail Sent."; 
    } else { 
    echo 'failure to send email'; 
    } 
} 
} 

HTML:

<form id="contactForm" class="form-horizontal" action="<?php echo get_option('home'); ?>/email/" method="POST"> 
    <input id="name" name="name" placeholder="Full Name" type="text"> 
    <input id="subject" name="subject" placeholder="Subject" type="text"> 
    <input id="email" name="email" placeholder="Email Address" type="email"> 
    <textarea placeholder="Your Message" id="message" name="message" rows="10"></textarea> 
    <input type="submit" value="SEND" class="btn btn-primary btn-block"> 
</form> 

Примечание: Я использую WP CMS.

+1

выглядит мне, как будто вы отправляете письмо дважды – DevZer0

+0

Метод по умолчанию для форм - 'GET'. Вам нужно добавить 'method = 'POST'' в свой'

'тег, чтобы использовать' $ _POST' в скрипте PHP. –

ответ

1

Ваша форма не соответствует атрибуту method. отредактируйте код, чтобы ваша форма имела method POST.

<form id="contactForm" class="form-horizontal" action="contact.tpl.php" method="POST"> 

Во-вторых, удалите один из ваших вызовов функции mail. если не ваш адрес электронной почты будет отправлено дважды

+1

«тип» или «метод»? –

+0

@ Micheal gosh Спасибо, человек, которого я сегодня не знаю – DevZer0

+0

Не проблема. Глядя на код, похоже, что второй почтовый вызов отправляет то же письмо самому себе (ручной копир?) –

0

Меняйте code.It отправлял почту по 2times

$to = $myEmail; 
$subject = $subject; 
$message = $message; 
$from = $email; 
$headers = "From:" . $from; 

if (mail($to,$subject,$message,$headers)) { 

    echo "Mail Sent."; 
} else { 
    echo 'failure to send email'; 
} 

И ваш метод форма, как POST

<form id="contactForm" class="form-horizontal" action="contact.php" method="post"> 

И главное ваш файл имя или contact.php или contact.tplNOTcontact.tpl.php

+0

Я думаю, что он имеет смысл отправить письмо дважды. Однажды получателю в '$ to' и один раз для себя (т.е.' $ myEmail') –

+0

Я обновил свой код, он все еще не работает ... – Shivam

+0

Вы получаете переменные POST. ?? – Gautam3164

0

Существует . (период) отсутствует с первого $headers объявление переменной. Может помочь.

0

Форма метод POST отсутствует в теге формы.

<form id="contactForm" class="form-horizontal" action="contact.tpl.php" method="post"> 
0

Вы неправильный параметр $to в mail()

Попробуйте

.... 
.... 
//// use $email here not $to which is not initialised yet 
if (mail($email,$subject,$message,$headers)) { 

это место

if (mail($to,$subject,$message,$headers)) { 
+0

Изменен, все еще не получил никаких писем в моем почтовом ящике ... – Shivam

+0

Проверьте папку 'spam или junk. И используйте 'die()' для каждой проверки, если пользователь не заполняет «имя или субъект и т. Д.», Также после «отправленных писем или нет». –

0
$to = $myEmail; 
$subject = $subject; 
$message = $message; 
$from = $email; 
$headers = "From:" . $from; 
if(@mail($to, $subject, $message, $headers)) { 
    echo "Mail Sent"; 
} else { 
    echo "Fail"; 
} 
+0

Как этот код отличается от OP? Я просто подавляю ошибки 'mail()' может поднять. –

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