PHP电子邮件表单未从网络电子邮件表单发送电子邮件

时间:2019-02-02 14:47:59

标签: php

我正在尝试解决此表单。它不是从网站上的表单发送预订请求。尽管显示了已发送表格的消息。

我尝试编辑电子邮件和标题。

<?
//print_r($_POST);

$to = “email@emaildomain.com, {$posting['email']}";
function msg($text){
echo "
    <script type='text/javascript'>
    alert('".$text."');
    top.location.href = 'http://www.aribbq.com';
    </script>
";
exit;
}

function error($text){
echo "
    <script type='text/javascript'>
    alert('".$text."');
    history.go(-1);
    </script>
";
exit;
}

if (!$_POST[date]) {error('Please, insert Date.');}
if (!$_POST[time]) {error('Please, insert Time.');}
if (!$_POST[party]) {error('Please, insert Party.');}
if (!$_POST[reservation_name]) {error('Please, insert Name.');}
if (!$_POST[reservation_email]) {error('Please, insert Email.');}
if (!$_POST[reservation_phone]) {error('Please, insert Phone.');}  
if(isset($_POST['submit'])){
 // then send the form to your email

//$from = ('Reservation from AriBBQ.com'); // sender
$mailheaders = "From: contact@aribbq.com" . "\r\n"; // . "CC: 
design@youremail.com"
$mailheaders .= 'Reply-To: ' . $posting['Email'] . "\r\n";
$subject = "AriBBQ.com Online Reservation";
$body = "\n Contact Name: ".$_POST[reservation_name]." \r\n\n"; 
//
$body .= " Email: ".$_POST[reservation_email]." \r\n\n"; //
$body .= " =================================================== \r\n\n"; //
$body .= "  Book a table \r\n\n
            Date: ".$_POST[date]." \r\n\n
            Time: ".$_POST[time]." \r\n\n
            Party: ".$_POST[party]." \r\n\n
            Contact Details \r\n\n
            Name: ".$_POST[reservation_name]." \r\n\n
            Email: ".$_POST[reservation_email]." \r\n\n
            Phone: ".$_POST[reservation_phone]." \r\n\n
            Message: ".$_POST[reservation_message]." \r\n\n"; //
$body .= " =================================================== \r\n\n"; //


$result = mail($to , $from , $subject , $body , $mailheaders); 
if($result) {msg('Thank you, your reservation has been sent. We 
will send you a confirmation text or call in person.');} // 
else{error('Sending mail is failed. Please try again');} //

} else {
error('No submitted. Please try again');
}

?>

您可以在http://aribbq.com/在线查看该表单。点击预订。收到电子邮件后,我们希望能够回复发件人的电子邮件地址。

2 个答案:

答案 0 :(得分:2)

好的,从本质上讲,您需要打开错误报告,因为您的脚本向我抛出了大约20个错误,打开错误报告会看到这些错误。如我上面的评论所述,在调试时将error_reporting(E_ALL);添加到脚本的顶部。

我遇到的问题如下:

Parse error: syntax error, unexpected '@' in /mail.php on line 4由错误的双引号引起,不是"而是。微妙的,但有问题的。

接下来,Multiple or malformed newlines found in additional_header in /mail.php是因为从PHP 5.5.2开始,bug was fixed用于防止邮件标头注入,因此\n\n中的所有$mailheaders应该被删除,我建议追加PHP_EOL在每一行的末尾,而不是。

您将$from变量包含在mail()调用中,这带来了2个问题。第一,mail()函数没有 from 参数,您可以将其包括在标题中。二-您的变量实际上已被注释掉。

正如我在上面的留言中提到,再次,电子邮件地址变量发送给的类型为$posting['email']',和$posting['Email']之内$mailheaders。这里的问题是$posting不存在。其次,您的表单在以后的问题中应包含HTML,以便提供自包含的示例,以便人们更轻松地帮助您(请参见https://stackoverflow.com/help/how-to-ask,该表单不会发布{{1 }}在所有,它帖子email

最后,你的大部分reservation_email引用不包括引号那么PHP不知道做什么用方括号之间的话做。例如,$_POST应该是$_POST[date]

我已经进行了上述所有更改,并设法通过提供的脚本和电子邮件表格成功地给自己发送了电子邮件,但我唯一没有看到的是您的$_POST['date']并没有给我带来成功信息。但是,我确实在此函数调用之前放置了一个msg()语句,该语句打印得很好。

我希望这可以帮助你得到你的脚本启动和运行,运气好的话,记住,echo是你的朋友!

答案 1 :(得分:-2)

CREATE TABLE `t_table` ( `fk_id` TEXT DEFAULT 'select lower(hex(randomblob(16)))' UNIQUE, `fv_name` TEXT, PRIMARY KEY(`fk_id`) ); 大多数服务器上都无法使用该功能,请尝试从smtp PhpMailer发送邮件。