2012-06-18 66 views
1

我想使用梨郵件擴展發送SMTP認證的電子郵件。 有很多的在網上的例子...這是我的代碼:梨郵件發送郵件也與無效的smtp用戶

<?php 
require_once "Mail.php"; 

$body = "Testtext"; 
$subject = "SMTP Testmail"; 
$mail_to = "[email protected]"; 
$mail_from = "[email protected]"; 

//SMTP Verbindungsdaten 
$host = "valid.smtp.com"; 
$username = "[email protected]"; 
$password = "validpasswordforotheruser"; 

$smtp = Mail::factory('smtp', 
array (
'host' => $host, 
//'auth' => true, 
'auth' => true, 
'username' => $username, 
'password' => $password 
)); 

$headers = array (
'From' => $mail_from, 
'To' => $mail_to, 
'Subject' => $subject 
); 
$mail = $smtp->send($mail_to, $headers, $body); 

if (PEAR::isError($mail)) { 
echo "Error during sending E-Mail : ". $mail->getMessage(); 
} 
?> 

腳本運行良好,所以我想測試這個樣本的誤差情況下,改變了SMTP用戶的東西無效,它窗臺工作...我有我的郵件。

這怎麼可能?

問候

編輯: 我現在已經做了其他的測試,並改變了SMTP服務器是無效的東西...文件說,必須有一個「PEAR_MAIL_SMTP_ERROR_CONNECT」的錯誤......我得到的以下輸出: 「fsockopen()[function.fsockopen]:無法連接到xx.xx.xx.xxx:25(連接被拒絕)在/usr/local/lib/php/Net/Socket.php在線108「

」可捕獲致命錯誤:類PEAR_Error的對象無法轉換爲位於第222行的/usr/local/lib/php/Net/SMTP.php中的字符串「

這個IP來自何時smtp名稱無效??? 它可以是服務器被任何配置否決嗎?

回答

2

這意味着SMTP服務器不驗證登錄數據。它可能不需要驗證或支持SMPT-after-POP(順便說一句,這是一件可怕的過時的事情),也就是說,如果你最近在SMTP服務器上對應的POP3服務器上進行了IP驗證,則不需要你進行驗證。

嘗試將服務器更改爲可能始終需要驗證的內容,例如, gmail SMTP。

+0

服務器來自網絡託管服務器我不知道...他們有匿名訪問權限可能(但我會驚訝)。 無論如何......在使用php郵件或類似的東西作爲回退的梨郵件中沒有神奇的回退?你有什麼想法我可以測試錯誤情況? (我想從「發送」中得到一個錯誤) –

+0

測試的最佳方式是啓動一個假的smtp服務器,該服務器什麼也不做,只是響應一個錯誤。 – ThiefMaster

+0

現在它似乎工作...謝謝你的答案! –