2014-07-01 35 views
0

因此,我正在使用併成功地使用PHPmailer發送電子郵件,但是一旦電子郵件發送,我不確定將頁面重定向回到您來自哪個頁面的消息,這些消息可能會發送消息?PHP郵件查詢

<?php 

if (isset($_POST['hp']) && $_POST['hp'] && $_POST['hp'] != '') {  

} 

else { 

require 'c:\php\includes\PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->isSMTP();          // Set mailer to use SMTP 
$mail->Host = ''; // Specify main and backup server 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '';       // SMTP username 
$mail->Password = '';       // SMTP password 
$mail->SMTPSecure = 'ssl';       // Enable encryption, 'ssl' also accepted 
$mail->Port =; 

$mail->From = ''; 
$mail->FromName = ''; 


foreach ($members as $user) { 

$mail->addAddress($user->user_email); 

} 

foreach ($committee as $user) { 

$mail->AddCC($user->user_email); 

} 





$mail->WordWrap = 50;         // Set word wrap to 50 characters 

$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = $_POST["Subject"]; 
$mail->Body = $_POST["contentfield"]; 





if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
    exit; 

} 
} 

?> 

我已將所有的細節都拿出來了,原因很明顯。

<?php 
header('Location: /path/to/page'); 
exit; 
+0

你只是問如何重定向用戶從PHP代碼?所有這些郵件代碼(你說是否按預期工作)是否真的與這有關? – David

+0

嗨,是的問題是,當我包括一個重定向,如標題(位置)它會停止發送出於某種原因的電子郵件。 – user3725879

+0

在這種情況下,聽起來好像有*在某處出錯。你能顯示導致這個錯誤的代碼嗎?當你調試時,它在哪裏失敗? – David

回答

2

爲什麼不是其他人添加到您的if()郵件不發出聲明,將用戶重定向如果if語句不會失敗:使用位置標頭在PHP

1

您可以發送HTTP重定向?

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
    exit; 

} else { 
    // email sent successfully, redirect to success page 
    header ('Location: sent.php'); 
} 

您的郵箱還是應該送,因爲瀏覽器將只重定向你,如果$mail->send()計算結果爲真......而在這一點上的郵件已經發送。

如果您願意,也可以在if()聲明後面加上重定向,這也應該起作用,因爲如果if()語句的計算結果爲true,它將退出腳本。

+0

當我包括它停止發送電子郵件,也許我把它放在錯誤的地方? – user3725879

+0

對不起,我現在看到您問的是重定向的位置,而不是如何實際執行重定向。只需將重定向放置在該腳本的底部即可。發送電子郵件的行是包含'$ mail-> send()'的行。在該行之後(並且在最後一個條件塊之外)的任何地方都可以工作。 – oliakaoil

0

您不一定需要重定向。您可以返回一個204 No Content,瀏覽器將保持原樣。如果你想返回一個狀態碼,你可以將結果作爲參數傳遞給重定向,重定向到一個不同的頁面,或者在會話中保留一個值,準備顯示在下一頁上。就像:

if(!$mail->send()) { 
    header('Location: failed.php?error='.rawurlencode($mail->ErrorInfo)); 
} 
    header('Location: success.php'); 
}