【问题标题】:send an email using data the user has given in a form?使用用户在表单中提供的数据发送电子邮件?
【发布时间】:2013-12-14 23:09:12
【问题描述】:

我的网站有一个联系表,希望对其进行修改,以便在用户单击提交时向他们发送确认电子邮件。有人可以告诉我最好的方法吗?

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

    ?>

【问题讨论】:

  • if (all entries are empty) { thanks for your inquiry } 没有意义...
  • 不清楚您的问题是什么。你的代码有效吗?您应该使用 mail() 来通知用户。请注意:我认为您不应该将 trim 的 t 大写。
  • if($msg_name=="" ... 实现了什么。删除它并尝试发送。

标签: php email


【解决方案1】:

首先我们让 mailto 函数与 localhost 和电子邮件客户端一起工作:
在 stackoverflow 上查看此链接:
网址链接:send email to owner by collecting information provided by user through form?

那么我推荐使用 Swiftmailer。 http://swiftmailer.org/docs/sending.html他们得到了最好的手册。

【讨论】:

    【解决方案2】:

    正如其他人已经建议的那样,“if”语句是无用的,因为它什么也没做。我认为您的想法是验证您的联系表格中的字段是否已填写。如果这些字段不可用,你应该抛出一些你没有做的错误。

    此外,如果您要向单击提交按钮的用户发送确认邮件,那么 $EmailTo 变量应该从 $msg_email 或 $msg2_email 中获取电子邮件,根据代码此处未完成。

    检查这个简单的 sn-p 这可能会对您有所帮助:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多