使用用户在表单中提供的数据发送电子邮件


send an email using data the user has given in a form?

我有一个网站的联系表格,希望修改它,以便在用户单击提交时向他们发送确认电子邮件。有人能建议我做这件事的最佳方法吗?

我的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);
}