簡體   English   中英

聯絡表格php | EmailFrom和密件抄送未顯示。

[英]Contact form php | EmailFrom and Bcc not showing up.

我是php的新手,所以我需要一點幫助,在其他地方也沒有運氣。

我正在嘗試讓發送電子郵件的人作為發件人,例如,通過電子郵件的郵件顯示為(未知發件人)或通過服務器的郵件作為“ testserver”。 在收件箱中未打開時,我希望將其發送到其電子郵件地址。 這樣客戶就可以單擊“答復”而不必選擇電子郵件地址。

我在設置cc和bcc字段時也遇到了問題。

任何想法將不勝感激。

繼承人的HTML

  <form method="post" id="myform" name="myform"> <table width="250" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Name:</td> <td> <input type="text" name="name" id="name"></td> </tr> <tr> <td>Number:</td> <td><input type="text" name="number" id="number"></td> </tr> <tr> <td><label for="email">Email:</label></td> <td><input type="text" name="email" id="email"></td> </tr> <tr> <td><label for="subject">Subject:</label></td> <td><input type="text" name="subject" id="subject" required></td> </tr> <tr> <td><label for="comment">Comment:</label></td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td><textarea name="comment" id="comment" cols="45" rows="5"></textarea></td> </tr> <tr> <td colspan="2">Please answer the question below</td> </tr> <tr> <td> <? if (isset($_POST['qcChosenOne'])) { $captchaEquations = array( 0=>array('1 + 6',7), 1=>array('8 - 3',5), 2=>array('15 + 2',17), 3=>array('8 + 2',10), 4=>array('10 - 5',5), ); $qcChosen = $_POST['qcChosenOne']; $qcGivenAnswer = (int) trim($_POST['qcQuestion']); $qcAnswer = (int) $captchaEquations[$qcChosen][1]; unset($_POST['qcChosenOne'],$_POST['qcQuestion']); if ($qcGivenAnswer == $qcAnswer) include('contact.php'); else print "<meta http-equiv=\\"refresh\\" content=\\"0;URL=error.php\\">"; } ?> &#49;&#48;&#32;&#45;&#32;&#53;&#32;&#61;&#32; </td> <td><input name="qcQuestion" type="text" class="form_fields" id="Captcha" /> <input type="hidden" name="qcChosenOne" value="4" /></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="submit" id="submit" value="Submit"></td> </tr> </table> </form> <script language="JavaScript" type="text/javascript"> var frmvalidator = new Validator("myform"); frmvalidator.addValidation("Name","req","Please enter your name"); frmvalidator.addValidation("Tel","req","Please enter your telephone number"); frmvalidator.addValidation("Email","req","Please enter email"); frmvalidator.addValidation("Email","email","Please provide a valid email address"); frmvalidator.addValidation("City","req","Please enter your City"); frmvalidator.addValidation("Make","req","Please enter the Make"); frmvalidator.addValidation("Model","req","Please enter your Model"); frmvalidator.addValidation("Enquiry","req","Please enter your enquiry/comments"); frmvalidator.addValidation("Captcha","req","Please enter the answer to the simple calculation. This is to ensure you are not a SPAM crawler."); </script> 

繼承人的PHP

 <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $EmailFrom = Trim(stripslashes($_POST['email'])); $EmailTo = "dalevanm@gmail.com"; $Subject = "Name, Website Enquiry Form"; $name = Trim(stripslashes($_POST['name'])); $number = Trim(stripslashes($_POST['number'])); $email = Trim(stripslashes($_POST['email'])); $subject = Trim(stripslashes($_POST['subject'])); $comment = Trim(stripslashes($_POST['comment'])); // validation $validationOK=true; if (!$validationOK) { print "<meta http-equiv=\\"refresh\\" content=\\"0;URL=error.htm\\">"; exit; } // prepare email body text $Body = ""; $Body .= "Name: "; $Body .= $name; $Body .= "\\n"; $Body .= "Number: "; $Body .= $number; $Body .= "\\n"; $Body .= "Email: "; $Body .= $email; $Body .= "\\n"; $Body .= "Subject: "; $Body .= $subject; $Body .= "\\n"; $Body .= "Comment: "; $Body .= $comment; $Body .= "\\n"; $headers .= "\\r\\n".'Cc: dalevanm@gmail.com' . "\\r\\n"; // send email $success = mail($EmailTo, $Subject, $Body, $EmailFrom, $header); // redirect to success page if ($success){ print "<meta http-equiv=\\"refresh\\" content=\\"0;URL=_confirmation_enquiry.php\\">"; } else{ print "<meta http-equiv=\\"refresh\\" content=\\"0;URL=error.htm\\">"; } } ?> 

當您發送電子郵件時:

$success = mail($EmailTo, $Subject, $Body, $EmailFrom, $header);

您從未定義過名為$header的變量。 幾乎在這里定義了一個稱為$headers

$headers .=  "\r\n".'Cc: dalevanm@gmail.com' . "\r\n";

但是我懷疑使用.=運算符也可能會失敗,因為該變量不存在。 只需直接分配:

$headers =  "\r\n".'Cc: dalevanm@gmail.com' . "\r\n";

並使用該變量:

$success = mail($EmailTo, $Subject, $Body, $EmailFrom, $headers);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM