2009-10-23 189 views
0

試圖通過SMTP發送電子郵件,它不工作,任何幫助?電子郵件:SMTP和PHP

//SMTP info 
$host = "smtp.gmail.com"; 
$username = "[email protected]"; 
$password = "password"; 
$from = "Taylor";//From email address 
$to = "[email protected]";//Change this to your inbox 


$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); 
// HTML email 
//$headers .= "MIME-Version: 1.0" . "\r\n"; 
//$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 

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

//Send to you 
$mail = $smtp->send($to, $headers, $message); 
if (PEAR::isError($mail)) { 
    echo("<h1>** Whoops! Error!. **</h1> <p>Please call us instead.</p>"); 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<h1>Thank you for your inquiry!</h1> <p>Thank you for signing up for our event. Your request for our guestlist has been received. Please check your email for the confirmation.</p> "); 
} 

回答

2

請檢查您的PHP日誌,看看是否有任何錯誤報告。語法看起來不錯。

+0

我該怎麼做:S歡呼隊友欣賞它 – user195257 2009-10-23 20:28:42

+0

查看您的PHP環境變量,然後找到日誌位置並使用文本查看器打開它。滾動到最後,應該在那裏記錄一些錯誤。如果您在Windows中可能位於C:\ PHP5 \ Logs \,並且在Linux中,它可能位於/ var/log /中。 – Scooterville 2009-10-23 21:00:47

1

您的$可能是您的問題。這不完全是一個有效的電子郵件地址。嘗試將其更改爲實際地址或完全省略。

+0

謝謝,我試過了,但沒有工作 – user195257 2009-10-23 20:59:40

0

google documentation表示應使用端口465或587連接到SMTP服務器。看起來Mail_smtp默認使用25。嘗試的465或587的顯式值與「端口」參數

$smtp = Mail::factory(
    'smtp', 
    array('host' => $host, 
      'port' => 465,  // explicit port 465 or 587 
      'auth' => true, 
      'username' => $username, 
      'password' => $password), 
); 
+0

謝謝,但它沒有工作:S – user195257 2009-10-23 20:59:04

+0

也看看下面的網站,它有一個例子,應該與smtp.gmail.com下使用「發送使用經過身份驗證的SMTP」標題(奇怪的是,它確實使用端口25):http://www.phpmaniac.net/wiki/index.php/Pear_Mail – Inshallah 2009-10-23 21:18:24

0

它看起來像我的$從不是一個有效的電子郵件地址。你可以試着用「[email protected]」這行代替它。

但是,我在標準PHP SMTP庫方面收效甚微,因此我總是使用開放源代碼phpmailer代替。這很簡單,併發送HTML和純文本,如果出現錯誤,產生非常有用的錯誤消息等。

祝你好運。

+0

嘿,我試過了,我每次都說錯誤地址是無效的,這是一個谷歌郵件地址 – user195257 2009-10-23 21:10:11

0

請注意,許多ISP要求您使用自己的SMTP服務器並阻止其他服務器。