2013-12-12 115 views
1

這讓我難以忍受!

我正在嘗試使用phpmailer發送電子郵件。這裏是我的代碼:

print "about to do the require!"; 
require_once("$s[phppath]/phpmailer.php"); 
print "require has been successful! creating a PHPMailer object!"; 
$mail = new PHPMailer(); 
print "yay!"; 

但是,該程序不會繼續 「耶」,它死在4號線($郵件=新的PHPMailer();)。最令人生氣的是沒有錯誤消息顯示,即使php運行display_errors = On。爲了測試這個,我拋出了一些明顯的錯誤,比如在行尾跳過了分號,我立刻得到了關於這個的錯誤信息。

這是怎麼回事?

編輯 我修改這樣的代碼:

require_once("$s[phppath]/phpmailer.php"); 
try { 
    $mail = new PHPMailer(true); 
} catch (phpmailerException $e) { 
    echo $e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
    echo $e->getMessage(); //Boring error messages from anything else! 
} 

仍然沒有骰子。

+0

啓用error_reporting('E_ALL')並查看錯誤。 –

+0

哇,那釘了錯誤信息的問題......我現在覺得很蠢:D – Bintz

回答

1

好吧,有兩個部分,以這樣一個問題:

1)爲什麼沒有錯誤消息?我對此感到非常非常愚蠢,因爲雖然我打開了display_errors,但我自己的腳本實際上禁用了error_reporting。感謝Pathik Ghandi指出這個非常簡單的修復。有時候我可能會很特別。

2)爲什麼PHPMailer不工作?因爲顯然PHPMailer現在需要兩個文件而不是一個:class.phpmailer.php是不夠的。你現在也需要PHPMailerAutoload.php。希望這可以幫助某個人!

0

嘗試回顯$ s [phppath]以確保您獲得正確的路徑。重新下載並重新上傳phpMailer庫。嘗試使用require而不是require_once。嘗試使用include而不是require。進入phpmailer.php文件並添加回顯或其他內容以確保您確實需要該文件。

可以肯定;你在運行某種框架嗎?即WordPress的?如果是這樣,您可能需要設置一個標誌來顯示PHP錯誤消息。 WP:define(「WP_DEBUG」,true);

0

嘗試調用上述的restore_error_handler()函數require。

相關問題