2013-12-04 3 views
0

У меня проблема с формой контакта, которую я установил на сайте клиентов, сообщения формы на мой адрес электронной почты не проблема, но не для моего клиента, домен которого зарегистрирован через 123 рег и учетные записи электронной почты настраиваются в Gmail. При обращении к моему веб-хосту они предложили использовать SMTP, это то, что я никогда раньше не использовал, я искал это, но не пришел ни к чему. У кого-нибудь есть идеи?Контактная форма не отправляется клиенту

Спасибо, Melissa

<?php 
if (array_key_exists('submit', $_POST)) { 
$to = '[email protected]'; //change this to suit your admin email address 
$subject = 'Website enquiry'; //change this to the mail subject you want the admin to receive 

$expected = array('name', 'email', 'tel', 'message1'); //list all of the fields in the form 
$required = array('name', 'email', 'message1'); //list the required fields in the form 
$missing = array(); 

$suspect = false; 
$pattern = '/Content-Type:|Bcc:|Cc:/i'; 

function isSuspect($val, $pattern, &$suspect) { 
if (is_array($val)) { 
    foreach ($val as $item) { 
    isSuspect($item, $pattern, $suspect); 
    } 
    } 
else { 
    if (preg_match($pattern, $val)) { 
    $suspect = true; 
    } 
    } 
} 

isSuspect($_POST, $pattern, $suspect); 

if ($suspect) { 
$mailSent = false; 
unset($missing); 
} 
else { 
foreach ($_POST as $key => $value) { 
    $temp = is_array($value) ? $value : trim($value); 
    if (empty($temp) && in_array($key, $required)) { 
    array_push($missing, $key); 
    } 
    elseif (in_array($key, $expected)) { 
    ${$key} = $temp; 
    } 
    } 
} 

if (!empty($email)) { 
$checkEmail = '/^[^@][email protected][^\s\r\n\'";,@%]+$/'; 
if (!preg_match($checkEmail, $email)) { 
    array_push($missing, 'email'); 
    } 
} 


if (!$suspect && empty($missing)) { 

    $message .= "Name: $name\n\n"; 
    $message .= "Email address: $email\n\n"; 
    $message .= "Telephone number: $tel\n\n"; 
    $message .= "Message: $message1\n\n"; 

    $message = wordwrap($message, 70); 

    $additionalHeaders = "From: $email"; 

    $complete = mail($to, $subject, $message, $additionalHeaders); 
    if ($complete) { 
     unset($missing); 
    } 
} 
} 
?> 

Ниже показана форма:

<?php 
       if ($_POST && isset($missing)) { 
        echo'<p class="warning">Please complete the missing or incorrect fields.</p>'; 
       } 
       if ($_POST && isset($complete)) { 
        echo '<p class="green"><strong>Thank you for contacting us. We will be in touch soon.</strong></p>'; 
       } 
       else{?> 


       <form method="post" action="" id="contact_form" class="validate"> 

        <fieldset> 

         <legend>Your Details</legend> 

         <label for="name"><b>Full Name</b></label> 
         <input name="name" placeholder="John Smith" class="" <?php if (isset($missing)) {echo 'value="'.htmlentities($_POST['name']).'"';} ?> /> 
         <br> 
         <label for="email"><b>Email Address</b></label> 
         <input type="email" name="email" placeholder="[email protected]" class="" <?php if (isset($missing)) {echo 'value="'.htmlentities($_POST['email']).'"';} ?> /> 
         <br> 
         <label for="phone"><b>Phone Number <span class="note">(optional)</span></b></label> 
         <input type="tel" name="tel" placeholder="+44 (0)28 9012 3456" class="" <?php if (isset($missing)) {echo 'value="'.htmlentities($_POST['tel']).'"';} ?> /> 
         <br> 
         <legend>Your Message</legend> 

         <textarea name="message1" <?php if (isset($missing)) {echo 'value="'.htmlentities($_POST['message1']).'"';} ?> />Hello,</textarea> 

        </fieldset> 

        <!--<button type="submit" class="btn submit"><span class="icon">m</span>&nbsp;&nbsp;Send Message</button>--> 
        <input type="submit" class="btn" name="submit" value="Send Message" /> 
        <button type="reset" class="btn reset">Clear form</button> 

       </form> 
       <?php }?> 

ответ

0

Это работа !!
Если вы получили ошибки неопределенная переменная на 54 строке чем конвертировать

$message .= "Name: $name\n\n"; 

в

$message = "Name: $name\n\n"; 
Смежные вопросы