我一直在寻找一个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.";
}
?>
为了显示其他信息,如位置、电话、网站等,您需要将这些字段分别添加到此脚本发送的表单中。例如,为了获得用户的位置,在表单标签中添加一个新的输入字段,如
<input type="text" name="location"/>
然后,当用户在该框中输入他们的位置时,就像他们输入电子邮件正文的描述一样,你将他们的位置添加到电子邮件正文中,就像这样(我首先从他们的基本信息开始):
$strMessage = "Location: ".$_POST["location"]."</br>"
"br"只是一个换行符。
然后将描述附加到电子邮件正文中,如下所示:
$strMessage .= "</br>".nl2br($_POST["txtDescription"])
假设用户的位置是新泽西州,描述是"你好,你好吗?",电子邮件正文看起来像:
Location: New Jersey
Hello, how are you?