2015-10-08 40 views
0

發送7個電子郵件,那麼我的PHP與我們聯繫形式發送電子郵件太好
但我正在逐漸每次提交7個電子郵件
問題是我不知道爲什麼我收到每7個電子郵件提交。
有什麼想法?我聯繫我們PHP的形式是每次提交

CODE

<?php 

if(isset($_POST['Send'])){ 
    $first_name =trim($_POST['first_name']); 
    $last_name=trim($_POST['last_name']); 
    $phone_number=trim($_POST['phone_number']); 
    $email=trim($_POST['email']); 
    $msg=trim($_POST['msg']); 
    $name=$first_name." ".$last_name; 
    if($first_name == '' ||$last_name =='' || $phone_number == '' || $email == ''|| $msg == '' ){ 
     $merror = "<p style='color:red;'> * Kindly fill all Fileds<p>"; 
    }else{ 
     foreach($_POST as $value){ 
      if(stripos($value, 'Content-Type:')!== FALSE || $_POST['Address']!== "") { 
       $merror = "<p style='color:red;'> * The information you have entered has a problem</p>"; 
      }else{ 
       require_once "class.phpmailer.php"; 
       $mail= new PHPMailer(); 
       if(!$mail->ValidateAddress($email)){ 
        $merror = "<p style='color:red;'> * Please enter a valid email address</p>"; 
       }else{ 
        $email_body = ""; 
        $email_body = $email_body . "Name: ". $name ."<br>"; 
        $email_body = $email_body . "Phone: ". $phone_number. "<br>"; 
        $email_body = $email_body . "Email: ". $email . "<br>"; 
        $email_body = $email_body . "Message: " . $msg . "<br>"; 
        $mail->SetFrom($email, $name); 
        $address = "[email protected]"; 
        $mail->AddAddress($address, Trial); 
        $mail->Subject= "Ess contact form message ".$name; 
        //$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 
        $mail->MsgHTML($email_body); 
        if(!$mail->Send()) { 
         echo "Mailer Error: " . $mail->ErrorInfo; 
         echo"<script>window.open('Contact.php','_self')</script>"; 
        } 
        echo"<script>window.open('Contact.php?status=thanks','_self')</script>";  
       } 
      } 
     } 
    } 
} 
?> 
+0

你的代碼在哪裏? –

+7

好吧,我可以準備好告訴你,這是你的'foreach'循環。您正在通過它運行儘可能多的輸入字段。 – Epodax

+2

是的,如果你的'mail-> Send()'調用是在一個循環中,並且該循環運行七次,那麼你會得到七封電子郵件。 – Simba

回答

0

你也有一個非常常見的錯誤有很多人有「聯繫我們」的形式。

$mail->SetFrom($email, $name); 

這將打破SPF和也導致DMARC失敗,你將永遠不會從一些人得到的消息,如果你的郵件服務器使用上有和Gmail並啓用DMARC。

由於DMARC是一個較新的協議,很多舊的cookie切割器代碼聯繫我們形式 - 並沒有考慮到這一點。

你可以閱讀更多有關在這裏:"DMARC - Contact Us Form Nightmare"

的建議的解決方法將是這樣做:

$mail->SetFrom("<Your email Adddress>, $name); 

你有客戶聯繫電子郵件中這是完美的郵件的正文。

這樣 - 你可以避免文章中的問題大綱。您無法快速點擊「回覆」按鈕,但至少您會收到啓用了DMARC的客戶發送的電子郵件。