2011-09-11 46 views
1
<?php 
    require_once "Mail.php"; 
    $from = "<[email protected]>"; 
    $to = "<[email protected]>"; 
    $subject = "Hi!"; 
    $body = "Hi,\n\nHow are you?"; 
    $host = "ssl://smtp.gmail.com"; 
    $port = "465"; 
    $username = "<[email protected]>"; 
    $password = "somepassworrd"; 
    $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>"); 
?> 

當我試圖執行這些PHP腳本我得到這些錯誤如何使用php腳本發送電子郵件?

FATAL ERROR Class Mail NOT found ON number line 18 

我知道上面的問題是這些

Send email using the GMail SMTP server from a PHP page

但它不是working.My PHP可能重複版本是5.3.4 Xampp 1.7.4版本。

mail('[email protected]', 'My Subject', $message); \\ I tried these 

但它顯示了一個警告說缺少標題。

  1. 如何發送電子郵件使用php腳本?

  2. 我們可以在不使用PHP驗證的情況下發送電子郵件嗎?因爲vb.net使用服務器認證,但我發現在谷歌上的大多數代碼是沒有認證的PHP。所以我有疑問

最後請幫助我這些嘗試從2個小時左右!

+1

什麼是Mail.php,你從哪裏得到它? –

回答

2

PHP mail()函數用於通過Sendmail發送郵件。如果你想使用一些SMTP服務器,你可以使用的Zend_Mail這讓這件事情很簡單: http://framework.zend.com/manual/en/zend.mail.html

使用的Zend_Mail你只需要編寫這樣的事:

$config = array('auth' => 'login', 
      'username' => 'myusername', 
      'password' => 'password'); 

$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config); 

$mail = new Zend_Mail(); 
$mail->setBodyText('This is the text of the mail.'); 
$mail->setFrom('[email protected]', 'Some Sender'); 
$mail->addTo('[email protected]', 'Some Recipient'); 
$mail->setSubject('TestSubject'); 
$mail->send($transport); 

上述處理認證爲你併發送一封郵件。

+0

如果沒有身份驗證,您可以向我展示其他嗎?請! – niko

+0

我應該在'auth'字段中更新什麼?登錄本身或什麼? – niko

+0

嗨,你只是省略了Zend_Mail_Transport_Smtp行中的$ config變量。含義:$ transport = new Zend_Mail_Transport_Smtp('mail.server.com'); – Ofir