2013-11-20 170 views
0

我使用PHP郵件程序構建聯繫人表單並牢記我是PHP新手。但是,我的表單發送得很好,但是,收到發件人地址的電子郵件與用戶輸入聯繫人表單的電子郵件不匹配,而是顯示與收件人相同的電子郵件。我100%確定我正在輸入正確的電子郵件到實時聯繫表格中。我已經取代了我的敏感信息與$$$$$$$$$PHPmailer設置從電子郵件到電子郵件相同

<?php 


    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     $name = trim($_POST["name"]); 
     $email = trim($_POST["email"]); 
     $message = trim($_POST["message"]); 

     if ($name == "" OR $email == "" OR $message == "") { 

      $error_message = "You must specify a value for name, email address, and message."; 
     } 

     if (!isset($error_message)) { 
      foreach($_POST as $value){ 
       if(stripos($value,'Content-Type:') !== FALSE){ 
        $error_message = "There was a problem with the information you entered."; 
       } 
      } 
     } 

     if (!isset($error_message) && $_POST["address"] != "") { 
      $error_message = "Your form submission has an error."; 
     } 

     require_once("../inc/phpmailer/PHPMailerAutoload.php"); 
     $mail = new PHPMailer(); 

     if (!isset($error_message) && !$mail->ValidateAddress($email)){ 
      $error_message = "You must specify a valid email address."; 
     } 

      $mail->IsSMTP(); 
      $mail->SMTPAuth = true; 
      $mail->Host = "smtp.gmail.com"; 
      $mail->Port = 587; 
      $mail->Username = "$$$$$$$$$$$$$"; 
      $mail->Password = "$$$$$$$$$$$$$"; 
      $mail->SMTPSecure = 'tls'; 

     if (!isset($error_message)) { 

      $mail->From = $email; 
      $mail->FromName = $name; 
      $mail->addAddress('$$$$$$$$$$$$$$', '$$$$$$$$$$l'); 

      $mail->isHTML(true); 

      $mail->Subject = '$$$$$$$$$$| ' . $name; 
      $mail->Body = $message; 
      $mail->AltBody = $message; 

      if($mail->Send()) { 
       header("Location: ../contact/?status=thanks"); 
       exit; 
      } else { 
       $error_message = "There was a problem sending the email: " . $mail->ErrorInfo; 
      } 

     } 
    } 

    require_once("../inc/header.php"); ?> 

     <div class="section page"> 

      <div class="wrapper"> 

       <div class="row"> 

        <div class="col-md-4 col-md-offset-4"> 
         <div class="center-block"> 
          <h1>Contact</h1> 
         </div> 

         <?php if (isset($_GET["status"]) AND $_GET["status"] == "thanks") { ?> 
          <div class="alert alert-success"> 
          <p>Thanks for the email! I&rsquo;ll be in touch shortly!</p> 
          </div> 
         <?php } else { ?> 

          <?php 
           if (!isset($error_message)) { 

            echo '<p>I&rsquo;d love to hear from you! Complete the form to send me an email.</p>'; 

           } else { 
            ?><div class="alert alert-warning"><?php 
            echo '<p>' . $error_message . '</p>'; 
            ?></div><?php 
           } 
          ?> 

        </div> 

       </div> 

        <form class="form-horizontal" method="post" role="form"> 
          <div class="form-group"> 
          <label for="name" class="col-sm-4 control-label">Name</label> 
          <div class="col-sm-4"> 
           <input type="text" class="form-control" id="name" name="name" placeholder="Name" value="<?php if (isset($name)) { echo htmlspecialchars($name); } ?>"> 
          </div> 
          </div> 
          <div class="form-group"> 
          <label for="email" class="col-sm-4 control-label">Email</label> 
          <div class="col-sm-4"> 
           <input type="email" class="form-control" id="email" name="email" placeholder="Email" value="<?php if(isset($email)) { echo htmlspecialchars($email); } ?>"> 
          </div> 
          </div> 
          <div class="form-group"> 
          <label for="message" class="col-sm-4 control-label">Message</label> 
          <div class="col-sm-4"> 
          <textarea class="form-control" id="message" name="message" rows="3"><?php if (isset($message)) { echo htmlspecialchars($message); } ?></textarea> 
          </div> 
          </div> 
          <div class="form-group" style="display:none;"> 
          <label for="address" class="col-sm-4 control-label">Address</label> 
          <div class="col-sm-4"> 
           <input type="text" class="form-control" id="address" name="address" placeholder="Name"> 
           <p>Humans: please leave this field blank.</p> 
          </div> 
          </div> 
          <div class="form-group"> 
          <div class="col-sm-offset-4 col-sm-"> 
           <button type="submit" class="btn btn-primary">Submit</button> 
          </div> 
          </div> 
        </form> 


       <?php } ?> 

      </div> 

     </div> 

    <?php require_once("../inc/footer.php"); ?> 
+0

我想你需要添加這行'$ mail-> addReplyTo($ email,$ name);' –

回答

0

改變這種

$mail->From = $email; 
$mail->FromName = $name; 
$mail->addAddress('$$$$$$$$$$$$$$', '$$$$$$$$$$l'); 

$mail->setFrom($email, $name); 
$mail->addAddress($EMAIL THAT ITS GOING TO, $NAME THATS ITS GOING TO); 

也看到與發送來自其他地址此鏈接GMAIL

https://support.google.com/mail/answer/22370?hl=en

0

感謝您的答覆傢伙。我做了一些外部研究,結果發現這是gmail本身的一個問題。他們不允許您使用他們的smtp服務,其地址與您的Gmail帳戶不同。我認爲這是因爲垃圾郵件。