邮件函数返回false并且不在php中邮寄

时间:2015-06-17 13:05:05

标签: php email

我在html和php工作。我想发送邮件进行酒店预订。我在服务器上工作而不是在localhost。

我的html文件是这样的。

的index.html

<form id="reservation-form" method="post" action="sendemail.php"> 
<div class="clearfix anim-7-all wow fadeIn" data-wow-delay="0" data-wow-duration="1.5s" data-wow-offset="5">

    <div class="col-md-4 col-sm-6 col-xs-12 form-group">
        <input type="text" name="name" value="" placeholder="Name">
    </div>
    <div class="col-md-4 col-sm-6 col-xs-12 form-group">
        <input type="email" name="email" value="" placeholder="Email">
    </div>
    <div class="col-md-4 col-sm-6 col-xs-12 form-group">
        <input type="text" name="message" class="date-picker" value="" placeholder="Date">
    </div>
    <div class="col-md-4 col-sm-6 col-xs-12 form-group">
        <input type="text" name="subject" value="" placeholder="Time">
    </div>

</div>

<div class="clearfix"><input type="submit" class="theme-btn pull-right" name="s" value="Send" /></div>

</form>

这是我的php文件。

sendemail.php

这里我发布了全部价值。但我无法发送邮件。

// Define some constants
define( "RECIPIENT_NAME", "John Doe" ); 
define( "RECIPIENT_EMAIL", "example@gmail.com" );



$senderName = isset( $_POST['name'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$subject = isset( $_POST['subject'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";

// If all values exist, send the email
if ( $senderName && $senderEmail && $message ) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$suc= mail($recipient,$subject,$message,$headers );
//var_dump($suc);

}

当我退回邮件时,它会重新报错。那么我应该编写什么代码来解决这个问题?

1 个答案:

答案 0 :(得分:0)

error_get_last()返回false时,您可以使用mail()

将以下代码放在$suc = mail()行之后。

if($suc){//If success
   print_r("No error");        
}
else{//If error on mail send
   print_r(error_get_last());
}
exit();//Remove this after debuging done 

如果您在此方面遇到任何错误,请与我们联系。