2017-01-19 5 views
2

Это мой HTML кодPHPMailer отправляет почту, но сообщение не работает

<form method="post" action="PHPMailer.php" enctype="text/plain"> 
    <div class="row 50%"> 
     <div class="6u 12u(mobile)"><input name="name" type="text" placeholder="Name" /></div> 
     <div class="6u 12u(mobile)"><input name="email" type="text" placeholder="Email" /></div> 
    </div> 
    <div class="row 50%"> 
     <div class="12u"><input name="messageInput" placeholder="Message"></textarea></div> 
    </div> 
    <div class="row"> 
     <div class="12u"> 
      <ul class="actions"> 
       <li><input type="reset" class="button alt" value="Clear Form" /></li> 
       <li><input name="submit" type="submit" class="button" value="Send Message" /></li> 
      </ul> 
     </div> 
    </div> 
</form> 

Это мой PHP код

<?php 
if(isset($_POST['submit'])) { 

    require_once 'xxxxxxxxxxx\phpMailerAutoload.php'; 

    $mail = new PHPMailer; 
    $mail->SMTPDebug = 2; 
    $mail->isSMTP();         
    $mail->Host = 'smtp.gmail.com'; 
    $mail->SMTPAuth = true;  
    $mail->Username = '[email protected]'; 
    $mail->Password = 'xxxxxxxxxx';      
    $mail->SMTPSecure = 'tls';  
    $mail->Port = 587;          

    $mail->setFrom('[email protected]', 'Mailer'); 
    $mail->addAddress('[email protected]', 'Mailer'); 
    $mail->addReplyTo('[email protected]', 'Information'); 
    $mail->addCC('[email protected]'); 
    $mail->addBCC('[email protected]'); 

    $mail->addAttachment('/var/tmp/file.tar.gz');  
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); 
    $mail->isHTML(true);         

    $mail->Subject = 'Here is the subject'; 
    $mail->Body = '$message'; 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

    if(!$mail->send()) { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
    } else { 
     echo 'Message has been sent'; 
    } 
} 
?> 

я получать почту, когда я удалить «, если (Исеть ($ _ POST ['submit'] ". Не похоже, чтобы выяснить, что Ii've пропустил.

Я пытаюсь получить сообщение из формы и поставить его как $ message, но он продолжает сообщать мне неопознанный индекс когда я добавляю $ message = $ _POST ['messageInput'] ;. Я очень новый и хотел бы любой помощи, которую я могу получить. Благодаря! !

Edit * удален ENCTYPE и он работал **

+0

Что показывает 'var_dump ($ _ POST)' show? – Barmar

+0

'' что это делает в форме? – nogad

+0

'$ mail-> Body = '$ message';' должно быть '$ mail-> Body = $ message;' поскольку переменные не разворачиваются внутри одинарных кавычек. – Barmar

ответ

1

пост будет работать после удаления enctype="text/plain">

Допустимые значения для ENCTYPE в тэге:

application/x-www-form-urlencoded 
multipart/form-data 

для более полного ответ позволяет включить комментарий Бармара:

$mail->Body = '$message';

должен быть

$mail->Body = $message;

, поскольку переменные не расширены в одинарные кавычки

но вы можете просто использовать

$mail->Body =$_POST['messageInput'];

нет необходимости создавать новую переменную для него

+0

спасибо за это! – user14685

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

  • Нет связанных вопросов^_^