phpmailer在发送邮件时不重定向

时间:2012-05-10 12:07:15

标签: php redirect phpmailer

我使用phpmailer发送电子邮件,当电子邮件成功发送,然后我想将页面重定向到其他页面,但它无法正常工作。

我尝试使用服务器端重定向即header();,但它无效。

当我为客户端尝试它时,它完全重定向到其他页面。 我没有在此页面或其他页面上使用任何sessions

下面是我试过的代码

if(!$mail->Send()){
 echo "Mailer Error: ". $mail->ErrorInfo;
}else{
 //echo "Message sent!";
 header('Location: contactus-thankyou.php');
 ?>
    <!-- <meta http-equiv="refresh" content="0; url=contactus-thankyou.php" /> -->
 <?php
}

5 个答案:

答案 0 :(得分:5)

解决方案是:将SMTPDebug值放在0。

$mail->SMTPDebug = 0;

答案 1 :(得分:0)

尝试删除location and the url

之间的空格

header('Location:contactus-thankyou.php');

答案 2 :(得分:0)

您可以使用jQuery重定向,但它可以正常工作。

<script>
    $(document).ready(function(){
       setTimeout(function(){
           location.href="../index.php";
       });
    });
</script>

答案 3 :(得分:0)

原因是输出在标题loaction语句之前被缓冲,并且标题语句通常不喜欢echo或服务器之前的输出。 只需在顶部使用obs_start();,在末尾使用obs_end_flush();即可: 例如:

    obs_start();
    php mailer script starts.........
    ...
    obs_end_flush();
header("Location: index.php");

答案 4 :(得分:-1)

你可以使用

echo "<script language='javascript' type='text/javascript'>location.href='contactus-thankyou.php'</script>";

取代

header('Location: contactus-thankyou.php');