0

我正在尝试将我的 HTML 表单复制到电子邮件正文中。下面是表单已经在 php 文件中的代码,但我希望如果用户提交 html 表单文件,那么所有未隐藏的表单数据都被复制到电子邮件正文中(作为禁用元素)。此外,如果有任何文件附件字段,则应将其附加到电子邮件中。

<?php
// multiple recipients
$to  = 'demo@localhost.com' . ', '; // note the comma
$to .= 'demo@localhost.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Untitled Document</title>
</head>

<body style="padding:3px; margin:0px;" bgcolor="#FFFFFF">
<table cellpadding="0" cellspacing="0" border="0" width="440">

    <tr><td style="height:10px"></td></tr>
    <tr>
      <td colspan="2" style="text-align:justify; line-height:15px;" class="body">

      <form name="frm" method="POST" action="careersuccess.php" enctype="multipart/form-data">
      <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tr>
            <td width="23%" class="body"> Name</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strname" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Address</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><textarea cols="16" name="straddress"></textarea></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> City</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strcity" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> State</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strstate" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Contact No</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strno" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Email</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="stremail" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Comments</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><textarea cols="16" name="strcomments"></textarea></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Resume</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="file" name="strresume"></td>
        </tr>
        <tr><td style="height:10px"></td></tr>
        <tr>

        </tr>

      </table>   
     </form>

</td>
    </tr>
    <tr>
      <td colspan="2" align="center"> </td>
  </tr>
    </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
4

1 回答 1

0

我假设表单是从网站提交的,并且您没有尝试在电子邮件中创建可提交的表单。复制表单中提交的数据,$_POST[""]; 肯定是获取数据的最佳方式。显然,一旦电子邮件到达收件人的收件箱,数据就无法操作,但正如我所说,我假设您没有尝试创建可以从电子邮件提交的表单。

您在网站上的表格很好:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Untitled Document</title>
</head>

<body style="padding:3px; margin:0px;" bgcolor="#FFFFFF">
<table cellpadding="0" cellspacing="0" border="0" width="440">

<tr><td style="height:10px"></td></tr>
<tr>
  <td colspan="2" style="text-align:justify; line-height:15px;" class="body">

  <form name="frm" method="POST" action="careersuccess.php" enctype="multipart/form-data">
  <table cellpadding="0" cellspacing="0" border="0" width="100%">
      <tr>
        <td width="23%" class="body"> Name</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strname" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Address</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><textarea cols="16" name="straddress"></textarea></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> City</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strcity" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> State</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strstate" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Contact No</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strno" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Email</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="stremail" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Comments</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><textarea cols="16" name="strcomments"></textarea></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Resume</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="file" name="strresume"></td>
    </tr>
    <tr><td style="height:10px"></td></tr>
    <tr>

    </tr>

  </table>   
 </form>

</td>
</tr>
<tr>
  <td colspan="2" align="center"> </td>
</tr>
</table>
</body>
</html>

然后,您的文件 careersuccess.php 需要包含以下内容:

<?php
// multiple recipients
$to  = 'demo@localhost.com' . ', '; // note the comma
$to .= 'demo@localhost.com';

// subject
$subject = 'Birthday Reminders for August';

$strName = $_POST["strname"]; //assigns strname from form to PHP variable
$strAddress = $_POST["straddress"];
$strCity = $_POST["strcity"];
$strState = $_POST["strstate"];
$strNumber = $_POST["strnumber"];
$strEmail = $_POST["stremail"];
$strComments = $_POST["strcomments"];
$strResume = $_POST["strresume"];
$lineBreak = "<br />\n\"; //adds carriage return to break up your message

$message = "Name: ".$strName.$lineBreak."Address: ".$strAddress.$lineBreak."City: ".$strCity.$lineBreak."State: ".$strState.$lineBreak...for the rest of your variables;

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

这将导致表单的提交值被复制到 mail() 函数的 $message 变量中的电子邮件中。

于 2012-09-11T12:53:26.697 回答