2013-07-21 53 views
1

我想在我的hostgator服務器上使用梨郵件。首先,我已經使用cPanel安裝了郵件包,並且已經安裝了net_smpt,但是當我需要Mail.php類時,它堅持要將Net文件夾放在Mail文件夾中 - 它們都處於同一級別。所以我在Mail裏面移動了Net,它停止了抱怨 - 但也許我只是搞砸了一切(也許不是:讓我知道)。梨郵件不工作沒有任何錯誤消息

這是我的測試腳本,其中大部分來自教程複製:

<?php 
echo 'Test Pear<br>'; 

require_once("/home3/myaccountname/php/Mail.php"); 

$from = "[email protected]"; 
$to = "[email protected]"; 
$subject = "Test pear"; 
$body = "Lorem ipsum dolor sit amet, consectetur adipiscing elit..."; 

$params['host'] = 'gator3015.hostgator.com'; 
$params['port'] = '465'; 
$params['username'] = '[email protected]'; 
$params['password'] = 'mypassword'; 
$params['debug'] = 'true'; 

$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject); 

$smtp = Mail::factory('smtp', $params); 

echo 'good so far'; 

$mail = $smtp->send($to, $headers, $body); 

echo 'Still there'; 

if (PEAR::isError($mail)) { 
    echo("<p>Error sending mail:<br/>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<p>Message sent.</p>"); 
} 
?> 

的SMTP參數已經使用笨電子郵件類,在那裏他們成功地發送電子郵件(測試,但作爲cronjobs和笨拒絕爲我工作我試圖使用梨郵件)。它需要SSL,但顯然它默認情況下使用梨形郵件。

我已經確認PHP錯誤消息顯示爲我的測試。會發生什麼是我看到除「仍然存在」之外的所有回聲,所以當我撥打$smtp->send()時出現問題。但是,即使將調試設置爲true,也不會顯示錯誤消息。 if(PEAR::isError($mail))似乎也沒有任何影響。並沒有發送電子郵件。

所以我有點不知所措是怎麼回事。任何想法?

更新:由於某種原因主機不支持SMTP,這就解釋了爲什麼我有奇怪的問題。使用Mandrill工作正常。

+0

是您的錯誤報告設置爲開? – 2013-07-21 18:47:06

+0

只是爲了確定我已經添加了'error_reporting(E_ALL); ini_set('error_reporting',E_ALL); ini_set('display_errors',1);'現在腳本永遠運行......幾分鐘後它終於停止,它仍然顯示相同,沒有錯誤顯示。 – Davor

回答

0

試試這個例子,

<?php 
require_once "Mail.php"; 

$from = "Sandra Sender <[email protected]>"; 
$to = "Ramona Recipient <[email protected]>"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

$host = "mail.example.com"; 
$username = "smtp_username"; 
$password = "smtp_password"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
    } else { 
    echo("<p>Message successfully sent!</p>"); 
    } 
?> 

而且這一次,

<?php 
require_once "Mail.php"; 

$from = "Sandra Sender <[email protected]>"; 
$to = "Ramona Recipient <[email protected]>"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

$host = "ssl://mail.example.com"; 
$port = "465"; 
$username = "smtp_username"; 
$password = "smtp_password"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'port' => $port, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
    } else { 
    echo("<p>Message successfully sent!</p>"); 
    } 
?> 
+0

謝謝。這基本上是我複製我的測試腳本 - 我嘗試通過從第二個腳本添加auth = true,但仍然無法正常工作,並且沒有錯誤消息...... :( – Davor

相關問題