我有一个网站的联系表格,希望修改它,以便在用户单击提交时向他们发送确认电子邮件。有人能建议我做这件事的最佳方法吗?
我的php非常简单:
// validation complete
if(isset($_POST['submit'])){
if($msg_name=="" && $msg2_name=="" && $msg_email=="" && $msg2_email=="" &&
$msg2_Message=="")
$msg_success = "Thankyou for your enquiry";
//send mail
$EmailFrom = "someone@somewhere.co.uk";
$EmailTo = "someone@somewhere.co.uk";
$Subject = "Online contact form";
$full_name = Trim(stripslashes($_POST['full_name']));
$Phone_Num = Trim(stripslashes($_POST['Phone_Num']));
$email_addr = Trim(stripslashes($_POST['email_addr']));
}
// prepare email body text
$Body = "";
$Body .= "full_name: ";
$Body .= $full_name;
$Body .= "'n";
$Body .= "Phone_Num: ";
$Body .= $Phone_Num;
$Body .= "'n";
$Body .= "email_addr: ";
$Body .= $email_addr;
$Body .= "'n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: $EmailFrom");
?>
首先,我们让mailto函数与localhost和电子邮件客户端一起工作:
检查stackoverflow上的此链接:
URL链接:通过收集用户通过表单提供的信息向所有者发送电子邮件?
然后我建议使用Swiftmailer。http://swiftmailer.org/docs/sending.html他们得到了最好的手册。
正如其他人已经提出的那样,"if"语句是无用的,因为它一无所获。我想你的想法是核实你的联系表格中的字段是否已填写。如果字段不可用,您应该抛出一些您没有执行的错误。
此外,如果您要向单击提交按钮的用户发送确认邮件,那么$EmailTo变量应该从$msg_email或$msg2_email中获取电子邮件,根据代码,这在这里没有完成。
检查这个简单的片段,这可能会帮助你:
if ($_POST['submit']) {
if ($_POST['name1] == '')
echo "Please provide the first name";
if ($_POST['name2] == '')
echo "Please provide the last name";
if ($_POST['email1] == '')
echo "Please provide the email";
if ($_POST['email2] == '')
echo "Please provide the alternate email";
if ($_POST['message] == '')
echo "Please provide the Message";
//Send email to your inquiry mail with above details
// Confirmation mail
$message =<<<EOM
Dear $_POST['name1'],
Thank you for your inquiry.
Our executives will get back to you ASAP.
Thanks,
Sales
EOM;
$to = $_POST['email1'];
$subject = "Acknowledgement of Inquiry";
$headers = "Content-Type: text-plain";
$headers .= "From: sales@yourcompany.co.uk";
mail($to, $subject, $message, $headers);
}