2016-09-02 11 views
1

私の連絡先フォームに少し問題があります。連絡先のメッセージ本文が空白(PhPMailerを使用)

私はPhpMailerとBootstrapの連絡先フォームを使用しています。私は、コードを実行すると、私はこのメッセージが表示されます。

"Uncaught exception 'phpmailerException' with message 'Message body empty'" 

これは私のコードです:

<form class="padding-top-40" role="form" id="contactForm" class="contact-form" data-toggle="validator" class="shake"> 
    <div class="form-group"> 
    <label for="InputName">Imię i nazwisko</label> 
    <input type="text" class="form-control" id="InputName" name="fullname" placeholder="Imię i nazwisko" required data-error="Proszę wpisać swoje imię i nazwisko"> 
    <div class="help-block with-errors"></div> 
    </div> 
    <div class="form-group"> 
    <label for="InputFirma">Firma</label> 
    <input type="text" class="form-control" id="InputFirma" name="subject" name="comments" placeholder="Firma" required data-error="Proszę wpisać nazwę firmy"> 
    <div class="help-block with-errors"></div> 
    </div> 
    <div class="form-group"> 
    <label for="InputEmail">E-mail</label> 
    <input type="email" class="form-control" id="InputEmail" name="emailid" placeholder="E-mail" required data-error="Proszę wpisać swój email"> 
    <div class="help-block with-errors"></div> 
    </div> 
    <div class="form-group"> 
    <label for="InputPhone">Telefon kontaktowy</label> 
    <input type="number" class="form-control" name="phone" id="InputPhone" placeholder="Numer telefonu" required data-error="Proszę wprowadzić numer telefonu"> 
    <div class="help-block with-errors"></div> 
    </div> 
    <div class="form-group"> 
    <label for="InputSubject">Temat</label> 
    <textarea type="text" class="form-control" name="subject" id="InputSubject" placeholder="Treść wiadomości" rows="4" required data-error="Proszę wpisać treść wiadomości"></textarea> 
    <div class="help-block with-errors"></div> 
    </div> 
    <div class="padding-top-20"> 
    <button type="submit" value="send" class="btn btn-default" id="submit" >Wyślij</button> 
    <div id="msgSubmit" class="h3 text-center"></div> 
    </div> 
</form> 

が質問

どのように行うことができます

$name = $_POST['InputName']; 
$company = $_POST['InputFirma']; 
$email = $_POST['InputEmail']; 
$phone = $_POST['InputPhone']; 
$message = $_POST['InputSubject']; 

require '../../PHPMailer-master/PHPMailerAutoload.php'; 
require '../../PHPMailer-master/class.smtp.php'; 

$mail = new PHPMailer(true); 
$mail->SMTPDebug = false;    // Enable verbose debug output 
$mail->isSMTP();      // Set mailer to use SMTP 
$mail->Host = 'poczta.cgsa.com.pl'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;    // Enable SMTP authentication 
$mail->Username = '[email protected]'; // SMTP username 
$mail->Password = 'FU86m6BSp7';  // SMTP password 
$mail->Port = 587; 

$mail->setFrom('[email protected]', 'Giełd'); 
$mail->addAddress('[email protected]', 'Odbiorca'); // Add a recipient 

$mail->isHTML(true);        // Set email format to HTML 


if(!$mail->send()) { 
    echo 'Wiadomość nie mogła zostać wysłana'; 
    echo "<br><br><br><hr><br>"; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Wiadomość została wysłana'; 
} 

$Body = "Wiadomość od: $name\n E-Mail: $email\n Firma: $company\n"; 

$success = mail($name, $company, $phone, $message); 

は、これが私のHTMLです私はエラーメッセージに対処しますか?

+1

PHPMAILERのメッセージは設定されていません....面白いのは、最後に標準のmail()関数でメールを送信しようとしています。そこにメッセージを設定することさえできます。 – nospor

答えて

1

あなたは間違った順序で作業しています。 Bodyプロパティ($Bodyという変数だけでなく)をに設定する必要があります。を送信する前にmail()に電話する必要はありません。あなたはSMTPクラス別途requireする必要はありませんので、

$mail->Body = "Wiadomość od: $name\n E-Mail: $email\n Firma: $company\n"; 

if(!$mail->send()) { 
    echo 'Wiadomość nie mogła zostać wysłana'; 
    echo "<br><br><br><hr><br>"; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Wiadomość została wysłana'; 
} 

あなたはそれが自動的にロードされ、auoloaderを使用しています。

コンストラクタにtrueを渡して例外を有効にしていますが、発生する可能性のあるものに対処するためにtry/catchブロックにコードをラップしていません。

+0

コードに間違った順序はありませんでした。彼は全く体を設定していませんでした;) – nospor

+0

はい、私もそれを修正しました... – Synchro

+0

ありがとう!できます! – Pravissimo

関連する問題