2016-03-26 3 views
-1

Я пытаюсь заставить PHPMailer работать для отправки почты из данных формы (очевидно).PHPMailer, отправляющий на пустую страницу

ВОПРОС:

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

Благодаря

ОШИБКИ:

Исправлены все ошибки в стороне от: 2016-03-26 22:10:43 SMTP ОШИБКА: Не удалось установить соединение с сервером: Connection отказался (111) 2016-03-26 22:10:43 Ошибка SMTP connect(). https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

PHP:

<?php 
$message= 
'First Name: '.$_POST['first'].'<br /> 
Last Name: '.$_POST['last'].'<br /> 
Phone: '.$_POST['phone'].'<br /> 
Email: '.$_POST['email'].'<br /> 
Message: '.$_POST['message'].' 
'; 

require 'PHPMailer/PHPMailerAutoload.php'; 

    $mail = new PHPMailer(); 

    $mail->SMTPDebug = 2;   // Enable verbose debug output 
    $mail->IsSMTP();    // Sets up a SMTP connection 
    $mail->CharSet = 'UTF-8'; 
    $mail->SMTPAuth = true;   // Connection with the SMTP does require authorization  
    $mail->SMTPSecure = "tls";  // Connect using a TLS connection 
    $mail->Host = "smtp.gmail.com"; //Gmail SMTP server address 
    $mail->Port = 587; 

    // Authentication 
    $mail->Username = "[email protected]"; // Your full Gmail address 
    $mail->Password = "xxxx"; // Your Gmail password 

    // Compose 
    $mail->SetFrom($_POST['email'], $_POST['firstname'] . ' ' . $_POST['lastname']); 
    $mail->AddReplyTo($_POST['email'], $_POST['firstname'] . ' ' . $_POST['lastname']); 
    $mail->Subject = "New Contact Form Enquiry";  // Subject (which isn't required) 
    $mail->MsgHTML($message); 

    // Send To 
    $mail->AddAddress("[email protected]", "xxxx"); // Where to send it - Recipient 
    $result = $mail->Send();  // Send! 
    $message = $result ? 'Successfully Sent!' : 'Sending Failed!';  
    unset($mail); 
} 
?> 

HTML:

<form class="form-inline" name="contactform" action="mailer.php" enctype="multipart/form-data" method="POST"> 
        <div class="col-sm-6 form-group form-sty"> 
         <label class="sr-only" for="first" required>First Name</label> 
         <input type="text" class="form-control-sty" name="first" placeholder="First Name"> 
        </div> 
        <div class="col-sm-6 form-group form-sty"> 
         <label class="sr-only" for="last" required>Last Name</label> 
         <input type="text" class="form-control-sty" name="last" placeholder="Last Name"> 
        </div> 
        <div class="col-sm-6 form-group form-sty"> 
         <label class="sr-only" for="phone" required>Phone</label> 
         <input type="text" class="form-control-sty" name="phone" placeholder="Phone"> 
        </div> 
        <div class="col-sm-6 form-group form-sty"> 
         <label class="sr-only" for="email" required>Email</label> 
         <input type="email" class="form-control-sty" name="mailfrom" placeholder="Email"> 
        </div> 
        <div class="col-sm-12 form-sty"> 
         <label class="sr-only" for="comment">Comment</label> 
         <textarea class="form-control-sty" name="message" id="message" rows="7" placeholder="What's on your mind?" required></textarea> 
        </div> 
        <div class="col-sm-12 form-sty form-sty-btn"> 
         <button type="submit" value="Submit" class="btn btn-default col-sm-12">Send</button> 
        </div> 
        <p><?php if(!empty($message)) echo $message; ?></p> 
       </form> 
+1

вы говорите, что у вас есть вопрос, а затем не говорите, что проблема * *. Какие ошибки/предупреждения вы получаете? Как мы можем вам помочь, если вы просто разместите стену плохо отформатированного кода? –

+0

Пожалуйста, обойдусь просьбами и редакцией. Просто добавьте соответствующий код и четко сформулируйте проблему. – j08691

+0

Извините, это в названии. Проблема в том, что PHPMailer отправляет меня на пустую страницу после отправки. Я не получаю никаких ошибок, он просто переходит на пустую страницу. – dbrree

ответ

1

Вы должны перенаправить заголовок обратно в форму (Я предполагаю, что, где вы хотите, чтобы отправить их) Заменить расположение внутри заголовка с URL

<?php 
$message= 
'First Name: '.$_POST['first'].'<br /> 
Last Name: '.$_POST['last'].'<br /> 
Phone: '.$_POST['phone'].'<br /> 
Email: '.$_POST['email'].'<br /> 
Message: '.$_POST['message'].' 
'; 

require 'PHPMailer/PHPMailerAutoload.php'; 

    $mail = new PHPMailer(); 

    $mail->SMTPDebug = 2;   // Enable verbose debug output 
    $mail->IsSMTP();    // Sets up a SMTP connection 
    $mail->CharSet = 'UTF-8'; 
    $mail->SMTPAuth = true;   // Connection with the SMTP does require authorization  
    $mail->SMTPSecure = "tls";  // Connect using a TLS connection 
    $mail->Host = "smtp.gmail.com"; //Gmail SMTP server address 
    $mail->Port = 587; 

    // Authentication 
    $mail->Username = "[email protected]"; // Your full Gmail address 
    $mail->Password = "xxxx"; // Your Gmail password 

    // Compose 
    $mail->SetFrom($_POST['email'], $_POST['firstname'] . ' ' . $_POST['lastname']); 
    $mail->AddReplyTo($_POST['email'], $_POST['firstname'] . ' ' . $_POST['lastname']); 
    $mail->Subject = "New Contact Form Enquiry";  // Subject (which isn't required) 
    $mail->MsgHTML($message); 

    // Send To 
    $mail->AddAddress("[email protected]", "xxxx"); // Where to send it - Recipient 
    $result = $mail->Send();  // Send! 
    if ($result) 
    { 
     header("Location: : http://www.example.com/contactform.php"); 
    } 
    else { 
     echo "sending mail failed: " . $mail->ErrorInfo; 
    } 
    unset($mail); 
} 
?> 
+0

Это на самом деле дает мне следующую ошибку: Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод запущен в /home/xxxx/public_html/PHPMailer/class.smtp.php:234) в/home/xxxx/public_html/mailer.php в строке 41 – dbrree

+1

Перед настройкой заголовка вы не можете выполнить эхо-вывод. Поэтому убедитесь, что перед заголовком нет отладочных эхо. – Torchify

+0

Решено это также. Мне пришлось отключить/прокомментировать SMTPDebug, и он работал нормально. Спасибо за помощь. – dbrree

1

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

ini_set('display_startup_errors',1); 
ini_set('display_errors',1); 
error_reporting(E_ALL); 
+0

спасибо, я могу видеть ошибки сейчас. Будет пост, если я не смогу понять это. – dbrree

+0

Я добавил ошибки в OP. – dbrree

+0

Хорошо, что я исправил все ошибки, кроме: 2016-03-26 22:10:43 \t SMTP ERROR: Не удалось подключиться к серверу: Соединение отказано (111) 2016-03-26 22:10:43 \t Ошибка SMTP connect() , https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting – dbrree

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