2016-07-05 27 views
0

チュートリアルを使用する次のPHPMailer PHPファイルを貼り付けて、次のHTMLフォームを作成しました。しかし、送信後にエラーが発生しました。 "メッセージを送信できませんでした。メールエラー:メッセージ本文が空です"。助けてください。PHPMailer body message空のエラー

<?php 
require 'phpmailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

//$mail->SMTPDebug = 3;        

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

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

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



$mail->Subject = 'Here is the subject'; 
$mail->From = $email; 
$mail->FromName = $name; 
$mail->Body = $message; 



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

?> 

、ここであなたのスクリプトはグローバル変数として利用可能リクエストパラメータに依存しているように見える形

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

    <div class="input-text-container clear"> 
    <input type="text" name="name" id="name" placeholder="Your Name" 
    class="input-text input-text-left"> 

    <input type="text" name="email" id="email" placeholder="Your E-mail" 
    class="input-text input-text-right"> 
    </div> 

    <textarea type="text" name="message" id="message" placeholder="Your  
    Message" class="textarea"></textarea> 

    <button type="submit" value="submit Form" class="submit">SUBMIT</button> 

</form> 

答えて

1

です。しかしこれは非常に珍しい(そして安全でない)習慣です。

の代わりに$_POST['message']を使用し、メッセージ本文にはフォームのデータが含まれている必要があります。他のパラメータについても同じ操作を行います。

+0

ありがとう、私はすべてのパラメータのためにそれをやった、今私はボディと名前の両方を見ることができますが、応答の電子メールはどこにも表示されません。 – Huselius

+0

現在、属性( 'From'、' FromName')とそれらを設定するメソッド( 'setFrom()')の両方を使用します。もう一方はもう一方を上書きするので、アドレス「from @ example.com」はあなたの電子メールにはもう存在しません。 –

+0

私は混乱して申し訳ありません。その[email protected]は、フォームに書かれた電子メールを知る必要があるので、私はまったく必要ないと思われます。 setFrom()を削除しても、ID「email」の入力セルに書かれている電子メールはまだ表示されません – Huselius

関連する問題