php邮件功能问题

时间:2011-02-23 18:59:09

标签: php email function

到目前为止这是我的代码

function send_email() {

$email = $_POST['signup-email'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

$to = "the1nz4ne@hotmail.com";
$subject = "Email from
RateMyLife.com"; $body = "Hi ,$firstname $lastname, this is an email from RateMyLife.com"; $headers = "From:info@iphoneappgmz.com";

mail($to, $subject, $body, $headers);

exit();

}

$existingSignup = mysql_query("SELECT * FROM signups WHERE signup_email_address='$email'");   
if(mysql_num_rows($existingSignup) < 1){
    $date = date('Y-m-d');
    $time = date('H:i:s');
    $password = md5($passwd);
    $insertSignup = mysql_query("INSERT INTO signups (signup_email_address, signup_date, signup_time, firstname, lastname, password, year, day, month, gender) VALUES   ('$email','$date','$time','$firstname', '$lastname', '$password', '$year', '$day', '$month', '$gender')");
    if($insertSignup){ //if insert is successful
       send_email();
    }

电子邮件未发送...

谢谢我无法弄清问题是什么。

2 个答案:

答案 0 :(得分:2)

可能有很多原因......你在Windows或linux服务器上吗?

检查phpinfo以查看sendmail是否配置正确(sendmail_path)。

如果配置正确,请检查smtp服务器日志消息中未发送电子邮件的原因,请查看此更多详细信息:http://pt.php.net/manual/en/function.mail.php#101588

如果您没有正确配置sendmail,您仍然可以使用某个SMTP服务器中的帐户发送电子邮件。为此,您应该使用PHP库来方便您的工作,例如,检查: http://swiftmailer.org/

另外,测试这个php代码给自己发送电子邮件,看看它是否有效:

mail('YOUREMAIL@EXAMPLE.com', 'My Subject', 'test message');

答案 1 :(得分:0)

您是否检查过两次查询是否成功?

$existingSignup = mysql_query(...) or die(mysql_error());
$insertSignup = mysql_query(...) or die(mysql_error());

如果失败,则返回布尔值FALSE。如果第一个失败,那么mysql_num_rows()将失败,因为它需要一个mysql结果句柄,而不是一个布尔值。如果第二个失败,则$ insertSignup将为false,而if()将永远不会触发。