2012-02-27 122 views
0

我試圖從CakePHP發送電子郵件,但沒有成功。我正在嘗試使用CakeEmail和此代碼:使用CakePHP發送電子郵件無法使用CakeEmail和SwiftMailer

$email = new CakeEmail(); 
$email->from(array('[email protected]' => __('Recruitment Job App'))) 
     ->to('[email protected]') 
      ->subject(__('Recruitment Status Update')) 
      ->send(__('Dear, ReynierPM this is a testing email')); 

並且因爲沒有發送電子郵件而不起作用。該文件/app/Config/email.php有這樣的配置:

class EmailConfig { 
    public $default = array(
    'transport' => 'Debug', 
    'host' => 'smtp.gmail.com', 
    'port' => 25, 
    'timeout' => 30, 
    'username' => '[email protected]', 
    'password' => 'secret_password', 
    'charset' => 'utf-8', 
    'headerCharset' => 'utf-8', 
); 
} 

我也試試這個http://bakery.cakephp.org/articles/sky_l3ppard/2009/11/07/updated-swiftmailer-4-xx-component-with-attachments-and-plugins但在這種情況下,我得到這個錯誤:

Fatal error: Class 'testemailView' not found in /var/www/html/jobapp/app/Controller/Component/swift_mailer.php on line 245

我使用CakePHP 2.0 .6和SwiftMailer 4.1.5,有什麼幫助? 歡呼聲和提前致謝

+1

致命錯誤似乎很清楚給我。 – 2012-02-27 04:02:36

+0

哇,你這個笨蛋,在這樣的公共網站上發佈你的密碼 – 2012-02-27 04:13:13

+0

我想隱藏,但無論如何這是一個測試帳戶,所以黑客去爲它jajajaja – ReynierPM 2012-02-27 04:19:51

回答

4

您正在拋出一些重要的部分來啓用電子郵件。你應該有這樣的事情:

App::uses('CakeEmail', 'Network/Email'); 
$email = new CakeEmail('default'); 

然後在你的email.php配置,適用於Gmail默認的配置應該looke這樣的:

public $default = array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => 465, 
    'timeout' => 30, 
    'username' => '[email protected]', 
    'password' => 'secret', 
    'transport' => 'Smtp' 
); 
+0

是的,你說得對,但如果我不想使用SSL和只有基本的SMTP端口25?我嘗試更改主機smtp.gmail.com和端口爲25,但得到這個:連接超時 錯誤:發生內部錯誤。和我有直接的聯繫。 – ReynierPM 2012-02-27 05:34:04

+1

這是因爲gmail只支持SSL。他們不允許端口25.這就是爲什麼你得到錯誤。 – 2012-02-27 05:35:51

+0

你已經得到了答案;)但是又有一個問題我怎麼知道我的PHP是否支持SSL或者我需要什麼才能使用ssl://smtp.gmail.com? – ReynierPM 2012-02-27 05:50:15

相關問題