Php 电邮联络表格
好的,我已经做了一张联系表。我需要一个php脚本,以电子邮件给我的信息。以下是我到目前为止的情况:Php 电邮联络表格,php,html,forms,contact,feedback,Php,Html,Forms,Contact,Feedback,好的,我已经做了一张联系表。我需要一个php脚本,以电子邮件给我的信息。以下是我到目前为止的情况: <?php $emailSubject = 'Contact Form'; $webMaster = 'email-here'; $firstName = $_POST ['first_name']; $lastName = $_POST['last_name']; $emailAddress = $_POST ['email']; $uploadFile = $_POST ['dataf
<?php
$emailSubject = 'Contact Form';
$webMaster = 'email-here';
$firstName = $_POST ['first_name'];
$lastName = $_POST['last_name'];
$emailAddress = $_POST ['email'];
$uploadFile = $_POST ['datafile'];
$questions = $_POST ['comments'];
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
那是我输入名字的地方吗
还有,我有一个感谢页面。它被称为:thank_you.html,我需要在表单发送后显示它 $to_name=stripslashes($_POST['to_name']);
$to_name = stripslashes($_POST['to_name']);
$from_name = stripslashes($_POST['from_name']);
$subject = stripslashes($_POST['subject']);
$body = stripslashes($_POST['body']);
$to_email = $_POST['to_email'];
$attachment = $_FILES['attachment']['tmp_name'];
$attachment_name = $_FILES['attachment']['name'];
if (is_uploaded_file($attachment)) { //Do we have a file uploaded?
$fp = fopen($attachment, \"rb\"); //Open it
$data = fread($fp, filesize($attachment)); //Read it
$data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed
fclose($fp);
}
//Let's start our headers
$headers = \"From: $from_name<\" . $_POST['from_email'] . \">\n\";
$headers .= \"Reply-To: <\" . $_POST['from_email'] . \">\n\";
$headers .= \"MIME-Version: 1.0\n\";
$headers .= \"Content-Type: multipart/related; type=\\"multipart/alternative\\"; boundary=\\"----=MIME_BOUNDRY_main_message\\"\n\";
$headers .= \"X-Sender: $from_name<\" . $_POST['from_email'] . \">\n\";
$headers .= \"X-Mailer: PHP4\n\";
$headers .= \"X-Priority: 3\n\"; //1 = Urgent, 3 = Normal
$headers .= \"Return-Path: <\" . $_POST['from_email'] . \">\n\";
$headers .= \"This is a multi-part message in MIME format.\n\";
$headers .= \"------=MIME_BOUNDRY_main_message \n\";
$headers .= \"Content-Type: multipart/alternative; boundary=\\"----=MIME_BOUNDRY_message_parts\\"\n\";
$message = \"------=MIME_BOUNDRY_message_parts\n\";
$message .= \"Content-Type: text/plain; charset=\\"iso-8859-1\\"\n\";
$message .= \"Content-Transfer-Encoding: quoted-printable\n\";
$message .= \"\n\";
/* Add our message, in this case it's plain text. You could also add HTML by changing the Content-Type to text/html */
$message .= \"$body\n\";
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_message_parts--\n\";
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_main_message\n\";
$message .= \"Content-Type: application/octet-stream;\n\tname=\\"\" . $attachment_name . \"\\"\n\";
$message .= \"Content-Transfer-Encoding: base64\n\";
$message .= \"Content-Disposition: attachment;\n\tfilename=\\"\" . $attachment_name . \"\\"\n\n\";
$message .= $data; //The base64 encoded message
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_main_message--\n\";
// send the message
mail(\"$to_name<$to_email>\", $subject, $message, $headers);
$from_name=stripslashes($_POST['from_name']);
$subject=stripslashes($_POST['subject']);
$body=stripslashes($_POST['body']);
$to_email=$_POST['to_email'];
$attachment=$\文件['attachment']['tmp\u name'];
$attachment\u name=$\u文件['attachment']['name'];
如果(是否上传了文件($attachment)){//我们是否上传了文件?
$fp=fopen($attachment,\'rb\”);//打开它
$data=fread($fp,filesize($attachment));//读取它
$data=chunk\u split(base64\u encode($data));//将其分块并编码为base64,以便发送电子邮件
fclose($fp);
}
//我们开始吧
$headers=\“From:$From\u name\n\”;
$headers.=\“回复:\n\”;
$headers.=“MIME版本:1.0\n\”;
$headers.=\“内容类型:多部分/相关;类型=\\”多部分/备选\“边界=\\”---=MIME\U边界\U主消息\“\n\”;
$headers.=“X-Sender:$from\u name\n\”;
$headers.=\“X-Mailer:PHP4\n\”;
$headers.=\\“X优先级:3\n\”//1=紧急,3=正常
$headers.=\“返回路径:\n\”;
$headers.=\“这是MIME格式的多部分消息。\n\”;
$headers.=\“----=MIME\u边界\u主消息\n\”;
$headers.=\“内容类型:多部分/可选;边界=\\”---=MIME\u边界\u消息\u部分\“\n\”;
$message=\“---=MIME\u BOUNDRY\u message\u parts\n\”;
$message.=\“内容类型:文本/普通;字符集=\\”iso-8859-1\\“\n\”;
$message.=\“内容传输编码:带引号的可打印\n\”;
$message.=\“\n\”;
/*添加我们的消息,在本例中为纯文本。您还可以通过将内容类型更改为text/HTML来添加HTML*/
$message.=\“$body\n\”;
$message.=\“\n\”;
$message.=\“----=MIME\u BOUNDRY\u message\u parts--\n\”;
$message.=\“\n\”;
$message.=\“---=MIME\u BOUNDRY\u main\u message\n\”;
$message.=\“内容类型:应用程序/八位字节流;\n\t名称=\\”\“\”$attachment\u名称。\“\\”\n\”;
$message.=“内容传输编码:base64\n\”;
$message.=\“内容处置:附件;\n\t文件名=\\\”\“$attachment\u名称。\“\\”\n\n\”;
$message.=$data//base64编码的消息
$message.=\“\n\”;
$message.=\“---=MIME\u BOUNDRY\u main\u message--\n\”;
//发送消息
邮件(\“$to\\”、$subject、$message、$headers);
类似的内容也很有用,这只是检查mx记录。你说的“输入我的名字”是什么意思?如果有人在名为“first\u name”的html公式字段中输入了他的名字,那么在提交表单时,
$\u POST['first\u name']
中就会有这个值。就是我输入名字的地方吗?
是的。确保清理用户输入。是的,对不起,我不擅长解释。我真的需要一些帮助,我必须在今天完成这项工作,我非常紧张。请参阅或搜索“php文件上载”你会发现很多其他的例子说明你必须如何做。我需要在上面的脚本中添加一个脚本,以允许我接收文件。你是说作为附件接收还是发送?如果你想做的是发送附件:我想让一个人发送一个文件,然后让我接收。请查看该链接,这是一个很好的例子,你只需要广告文件处理部分(上传到tmp文件到你的服务器,然后发送)
$to_name = stripslashes($_POST['to_name']);
$from_name = stripslashes($_POST['from_name']);
$subject = stripslashes($_POST['subject']);
$body = stripslashes($_POST['body']);
$to_email = $_POST['to_email'];
$attachment = $_FILES['attachment']['tmp_name'];
$attachment_name = $_FILES['attachment']['name'];
if (is_uploaded_file($attachment)) { //Do we have a file uploaded?
$fp = fopen($attachment, \"rb\"); //Open it
$data = fread($fp, filesize($attachment)); //Read it
$data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed
fclose($fp);
}
//Let's start our headers
$headers = \"From: $from_name<\" . $_POST['from_email'] . \">\n\";
$headers .= \"Reply-To: <\" . $_POST['from_email'] . \">\n\";
$headers .= \"MIME-Version: 1.0\n\";
$headers .= \"Content-Type: multipart/related; type=\\"multipart/alternative\\"; boundary=\\"----=MIME_BOUNDRY_main_message\\"\n\";
$headers .= \"X-Sender: $from_name<\" . $_POST['from_email'] . \">\n\";
$headers .= \"X-Mailer: PHP4\n\";
$headers .= \"X-Priority: 3\n\"; //1 = Urgent, 3 = Normal
$headers .= \"Return-Path: <\" . $_POST['from_email'] . \">\n\";
$headers .= \"This is a multi-part message in MIME format.\n\";
$headers .= \"------=MIME_BOUNDRY_main_message \n\";
$headers .= \"Content-Type: multipart/alternative; boundary=\\"----=MIME_BOUNDRY_message_parts\\"\n\";
$message = \"------=MIME_BOUNDRY_message_parts\n\";
$message .= \"Content-Type: text/plain; charset=\\"iso-8859-1\\"\n\";
$message .= \"Content-Transfer-Encoding: quoted-printable\n\";
$message .= \"\n\";
/* Add our message, in this case it's plain text. You could also add HTML by changing the Content-Type to text/html */
$message .= \"$body\n\";
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_message_parts--\n\";
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_main_message\n\";
$message .= \"Content-Type: application/octet-stream;\n\tname=\\"\" . $attachment_name . \"\\"\n\";
$message .= \"Content-Transfer-Encoding: base64\n\";
$message .= \"Content-Disposition: attachment;\n\tfilename=\\"\" . $attachment_name . \"\\"\n\n\";
$message .= $data; //The base64 encoded message
$message .= \"\n\";
$message .= \"------=MIME_BOUNDRY_main_message--\n\";
// send the message
mail(\"$to_name<$to_email>\", $subject, $message, $headers);
$em = $_POST ['email'];
list($username,$domain)=split('@',$em);
if(!checkdnsrr($domain,'MX')) echo 'please enter a proper e-mail address.';