无法向此表单电子邮件附件脚本添加更多输入

时间:2013-09-01 03:26:36

标签: php forms email attachment

我一直在搜索php脚本,以帮助我将表单结果和附加图像发送到电子邮件。我找到了一个实际发送附件的人,但我不太明白如何为它添加更多的输入值。它目前只是在电子邮件正文和附加图像中发送描述。我还希望有其他信息显示,如电话号码/位置/网站/等。我尝试了多种方法,并在这里搜索和其他网站,但没有运气。任何人都可以帮我添加这段代码吗?

    <?
$strTo = $_POST["txtTo"];
$strSubject = $_POST["txtSubject"];
$strMessage = nl2br($_POST["txtDescription"]);


//*** Uniqid Session ***//
$strSid = md5(uniqid(time()));

$strHeader = "";
$strHeader .= "From: ".$_POST["txtFormName"]."<".$_POST["txtFormEmail"].">\nReply-To: ".$_POST["txtFormEmail"]."";

$strHeader .= "MIME-Version: 1.0\n";
$strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";
$strHeader .= "This is a multi-part message in MIME format.\n";

$strHeader .= "--".$strSid."\n";
$strHeader .= "Content-type: text/html; charset=utf-8\n";
$strHeader .= "Content-Transfer-Encoding: 7bit\n\n";
$strHeader .= $strMessage."\n\n";

//*** Attachment ***//
for($i=0;$i<count($_FILES["fileAttach"]["name"]);$i++)
{
    if($_FILES["fileAttach"]["name"][$i] != "")
    {
        $strFilesName = $_FILES["fileAttach"]["name"][$i];
        $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"][$i]))); 
        $strHeader .= "--".$strSid."\n";
        $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; 
        $strHeader .= "Content-Transfer-Encoding: base64\n";
        $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";
        $strHeader .= $strContent."\n\n";
    }
}


$flgSend = @mail($strTo,$strSubject,null,$strHeader);  // @ = No Show Error //

if($flgSend)
{
    echo "Mail send completed.";
}
else
{
    echo "Cannot send mail.";
}

&GT;

1 个答案:

答案 0 :(得分:0)

为了显示位置,电话,网站等其他信息,您需要将这些字段分别添加到此脚本发送的表单中。例如,为了获取用户的位置,在表单标记内添加一个新的输入字段,如

<input type="text" name="location"/> 

然后,当用户将他们的位置输入到该框中时,就像他们输入电子邮件正文的描述一样,您将他们的位置添加到电子邮件正文中(我会先从他们的基本信息开始):

$strMessage = "Location: ".$_POST["location"]."</br>"

“br”只是一个换行符。

然后将描述附加到电子邮件正文中,如下所示:

$strMessage .= "</br>".nl2br($_POST["txtDescription"]) 

所以假设用户的位置是新泽西州,描述是“你好,你好吗?”,电子邮件正文如下:

Location: New Jersey

Hello, how are you?