PHP邮件重定向后不发送

时间:2014-01-06 14:45:45

标签: php email redirect

我遇到了一个奇怪的问题

我有一个发送电子邮件的PHP函数,然后重定向到另一个页面。

当我注释掉重定向时,电子邮件会被发送并收到。 当我重定向处于活动状态时,它会将我重定向到正确的页面,但电子邮件似乎不会被发送。

function()
{
$email='nobody@nowhere.com';
$msg='Some test text message';
$from='FROM: reviews@mysite.com';

mail($email,'Feedback from your service',$msg,$from);

header('Location: review.php');
}

4 个答案:

答案 0 :(得分:0)

mail函数根据电子邮件发送结果返回true或false,你应该检查一下(可能将它附加到目标URL进行调试): http://www.php.net/manual/en/function.mail.php

使用重定向时,您是否有任何正文内容?也许一个简单的“重定向...”消息将解决问题。

答案 1 :(得分:0)

尝试使用如下:

function your_function()
{
    $email='nobody@nowhere.com';
    $msg='Some test text message';
    $from='FROM: reviews@mysite.com';

    if(mail($email,'Feedback from your service',$msg,$from)){

     header('Location: review.php');
    }
    else{
        // do falure loginc
     }

}

答案 2 :(得分:0)

你必须使用ob_start();在第一行和ob_flush();在代码的最后一行。那么你将能够使用header()发送标题;功能

答案 3 :(得分:0)

function()
{
$email='nobody@nowhere.com';
$msg='Some test text message';
$from='FROM: reviews@mysite.com';

mail($email,'Feedback from your service',$msg,$from);

echo"<script language='javascript'>alert('mail Sent Successfully');

 window.location='review.php';
  </script>";
}