繁体   English   中英

用户填写我的表格时,我没有收到确认邮件

[英]i am not getting confirmation mail when a user fill my form

我有一个网站。 我想从客户那里获得表格详细信息...我正在准备一些代码。 该代码在某些托管面板上运行良好,但在我的托管面板上无法正常工作。 我认为某些功能不支持我的托管。 我报告了托管服务提供商,但没有好的解决方案。 任何人都可以解决这个问题吗?

我的advertise.html表单看起来像这样

<form action="advertisement-form.php" method="post" class="comment-form row-fluid" data-validate="parsley">

                            <p>
                                <label for="name" class="span2">Your Name</label>
            <input type="text" class="span10" placeholder="Your Name" id="name" name="name" required >
                            </p>

                            <p>
                                <label for="email" class="span2">E-mail</label>
            <input type="email" class="span10" placeholder="Your E-mail" id="email" name="email" required >
                            </p>

                                <p>
                                <label for="name" class="span2">Your Ad Title</label>
            <input type="text" class="span10" placeholder="Ad Title" id="ad_title" name="ad_title" required >
                            </p>

                            <p>
                                <label for="site" class="span2">Target URL</label>
                                <input type="text" name="target_url" id="target_url" class="span10" data-type="url" required>
                            </p>

                            <p>
                                <label for="site" class="span2">Banner URL</label>
                                <input type="text" name="banner_url" id="banner_url" class="span10" data-type="url" required>
                            </p>

                            <p>
                                <label for="site" class="span2">Payment Email</label>
                                <input type="text" name="payment_email" id="payment_email" class="span10" data-type="url" required>
                            </p>

                            <p>
                                <label for="mess" class="span2">Message</label>
                                <textarea name="message" class="span10" data-trigger="keyup" data-rangelength="[20,1000]"></textarea>
                            </p>
                            <p>
                                <input type="submit" value="Continue" class="button button-load large-button offset2 span4">
                            </p>
                        </form>

我的表单处理看起来像这样,用advertise-form.php命名

<?php

if(isset($_POST['email'])) {



// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "myemail@gmail.com";

$email_subject = "New Advertisement for Website";


 // validation expected data exists

if(!isset($_POST['name']) ||

    !isset($_POST['email']) ||

    !isset($_POST['ad_title']) ||

    !isset($_POST['target_url']) ||

    !isset($_POST['banner_url']) ||

    !isset($_POST['payment_email']) ||

    !isset($_POST['message'])) {

    died('We are sorry, but there appears to be a problem with the form you submitted.');       

}



$name = $_POST['name']; // required



$email_from = $_POST['email']; // required

$ad_title = $_POST['ad_title']; // required

$target_url = $_POST['target_url']; // required

$banner_url = $_POST['banner_url']; // required

$payment_email = $_POST['payment_email']; // not required

$message = $_POST['message']; // required



$email_message = "Form details below.\n\n";



function clean_string($string) {

  $bad = array("content-type","bcc:","to:","cc:","href");

  return str_replace($bad,"",$string);

}



$email_message .= "Name: ".clean_string($name)."\n";

$email_message .= "Email: ".clean_string($email_from)."\n";

$email_message .= "Ad Title: ".clean_string($ad_title)."\n";

$email_message .= "Target URL: ".clean_string($target_url)."\n";

$email_message .= "Banner URL: ".clean_string($banner_url)."\n";

$email_message .= "Payment Email: ".clean_string($payment_email)."\n";

$email_message .= "Message: ".clean_string($message)."\n";



// create email headers

$headers = 'From: '.$email_from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);  

?>

当用户填写表格时,他会收到成功消息。 但我没有收到确认邮件。 此脚本可以在某些托管面板上工作,而不是在我的托管面板上。任何人都可以解决此问题...

再一次感谢你。

我将建议您尝试一下,在每行以\\r\\n结尾,并添加To头(可能看起来是多余的)。 同样,在标头中声明charset=utf-8应该足够了。

  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=utf-8\r\n";
  // Additional headers
  // This might look redundant but some services REALLY favor it being there.
  $headers .= "To: $to_fullname <$to_email>\r\n";
  $headers .= "From: $from_fullname <$from_email>\r\n";

另外,功能die没有died

1-变更

 died('We are sorry, but there appears to be a problem with the form you submitted.');       

 die('We are sorry, but there appears to be a problem with the form you submitted.'); 

2-删除@之前的邮件功能。 与在任何语句之前使用@一样,如果出现任何问题,将抑制错误。 因此,如果您删除此文件,则很容易进行故障排除。 请按照上述2个步骤操作,然后重试。 如果发现任何错误,请在此处粘贴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM