通过 PhP 将 HTML 表单发送到电子邮件时遇到问题 [重复]

Posted

技术标签:

【中文标题】通过 PhP 将 HTML 表单发送到电子邮件时遇到问题 [重复]【英文标题】:Having trouble sending HTML form to email through PhP [duplicate] 【发布时间】:2015-10-19 17:48:36 【问题描述】:

我创建了一个表单,并希望使用 php 将信息发送到我的电子邮件。信息提交,我收到一封电子邮件,但电子邮件仅显示提交表单的个人输入的名字和姓氏。我想知道 php 端或 html 端缺少什么。

谢谢

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

<table >

<tr>
<td>
     <label for="first_name">First Name *</label>
</td>
 <td>
     <input  type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>

 <tr>
 <td>
    <label for="last_name">Last Name *</label>
 </td>
 <td>
    <input  type="text" name="last_name" maxlength="50" size="30">
 </td>

</tr>

<tr>
 <td>
    <label for="email">Email Address *</label>
 </td>
 <td>
     <input  type="text" name="email" maxlength="80" size="30">
 </td>

</tr>

<tr>

 <td>
    <label for="telephone">Telephone Number</label>
 </td>
 <td>
    <input  type="text" name="telephone" maxlength="30" size="30">
 </td>
</tr>


<!--- Property Type-->

<tr>
 <td>
    <label for="lender">Lender *</label>
 </td>
 <td>
     <input  type="text" name="lender" maxlength="80" size="30">
 </td>

 </tr>
 <tr>
 <td>
    <label for="loan_officer">Loan Officer *</label>
 </td>
 <td>
     <input  type="text" name="loan_officer" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="property_address">Email Address *</label>
 </td>
 <td>
     <input  type="text" name="property_address" maxlength="100" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="city">City *</label>
 </td>
 <td>
     <input  type="text" name="city" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="zip">Zip Code *</label>
 </td>
 <td>
     <input  type="text" name="zip" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="pin">PIN(Permenant Index Number) *</label>
 </td>
 <td>
     <input  type="text" name="pin" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="rooms">Number of Rooms *</label>
 </td>
 <td>
     <input  type="text" name="rooms" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="bath">Number of Bathrooms *</label>
 </td>
 <td>
     <input  type="text" name="bath" maxlength="80" size="30">
 </td>
</tr>

<!--- Garage /yes or no-->
<tr>
 <td>
    <label for="plat">Plat of Survey *</label>
 </td>
 <td>
     <input  type="text" name="plat" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="borrow">Borrowers Name *</label>
 </td>
 <td>
     <input  type="text" name="borrow" maxlength="80" size="30">
 </td>
</tr>
<!--- sale /refinance-->
<tr>
 <td>
    <label for="price">Purchase Price *</label>
 </td>
 <td>
     <input  type="text" name="price" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="loan_amount">Loan Amount *</label>
 </td>
 <td>
     <input  type="text" name="loan" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td>
    <label for="cod">C.O.D *</label>
 </td>
 <td>
     <input  type="text" name="cod" maxlength="80" size="30">
 </td>
</tr>
 <tr>
 <td>
    <label for="invoice">Invoice *</label>
 </td>
 <td>
     <input  type="text" name="invoice" maxlength="80" size="30">
 </td>
</tr>
<tr>
<td>
    <label for="comments">Comments *</label>
</td> 
<td>
    <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>

<tr>
 <td colspan="2" style="text-align:center">
    <input type="submit" name="submit" id="submit" value="Submit">   
    <input type="reset" name="Reset" id="reset" value="reset">
 </td>
</tr>

</table>

</form>

PHP

$first_name = $_POST['first_name']; // required

$last_name = $_POST['last_name']; // required

$email_from = $_POST['email']; // required

$telephone = $_POST['telephone']; // not required

$lender = $_POST['lender']; // required

$loan_officer = $_POST['loan_officer']; // required

$property_address = $_POST['property_address']; // required

$city = $_POST['city']; // required

$zip = $_POST['zip']; // not required

$pin = $_POST['pin']; // required

$rooms = $_POST['rooms']; // required

$bath = $_POST['bath']; // required

$plat = $_POST['plat']; // required

$borrow = $_POST['borrow']; // not required

$price = $_POST['price']; // required

$cod = $_POST['cod']; // not required

$comments = $_POST['comments']; // required


$to = "rosaliam2@yahoo.com";

$subject = "New Appraisal Request";


$error_message = "";

$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]2,4$/';

if(!preg_match($email_exp,$email_from)) 

$error_message .= 'The Email Address you entered does not appear to be valid.           <br />';




mail($to, $subject, $message, "From" . $first_name . $last_name); 
echo "Your Information has been sent";
?>

【问题讨论】:

$message在哪里? 我明白你在说什么,我需要回去看看我做了什么, 当然。您只需使用表单字段中的数据编写$message 中的电子邮件正文。对于初学者,请尝试 $message = print_r($_POST, true); 以检查一切是否正常。 我在哪里把`$message = print_r($_POST, true);`放在开发人员或实际代码中 修复了!我唯一的另一个问题是我使用了一些无线电输入,但它们没有出现在消息&lt;tr&gt; &lt;td&gt; &lt;lable=for"refinance"&gt; Sale or Refinance *&lt;/label&gt; &lt;/td&gt; &lt;td&gt;&lt;input type="radio" name="refinance" value="refinance"&gt;Refinance &lt;input type="radio" name="refinance" value="sale"&gt;Sale &lt;/td&gt; &lt;/tr&gt; 中我会在我的 php 中输入什么来获取值? $email_message .= "Sale or Refinance: ".clean_string($refinance)."\n"; 【参考方案1】:

实际上没有要发送的消息变量!! 您只是将 $first_name 和 $last_name 作为标头发送!

【讨论】:

已修复!我唯一的另一个问题是我使用了一些无线电输入并且它们没有出现在消息&lt;tr&gt; &lt;td&gt; &lt;lable=for"refinance"&gt; Sale or Refinance *&lt;/label&gt; &lt;/td&gt; &lt;td&gt;&lt;input type="radio" name="refinance" value="refinance"&gt;Refinance &lt;input type="radio" name="refinance" value="sale"&gt;Sale &lt;/td&gt; &lt;/tr&gt; 中我会在我的 php 中输入什么来获取值? $email_message .= "Sale or Refinance: ".clean_string($refinance)."\n";

以上是关于通过 PhP 将 HTML 表单发送到电子邮件时遇到问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题

AJAX 未将用户输入从表单发送到 PHP 脚本

php表单发送到邮箱V1.0

将数据从 HTML 表单发送到 Flask 中的 Python 脚本

Django Forms:使表单发送到电子邮件的一些文本显示为粗体

将 HTML 数据从表单发送到 JSON 文件 (Ajax/Jquery)