2015-12-03 584 views
3

交通運輸配置「SMTP」 CakePHP中3.X缺少錯誤:交通運輸配置「SMTP」中缺少的CakePHP 3.X

我曾嘗試一些配置,內容如下:

'EmailTransport' => [ 
    'default' => [ 
     'className' => 'Smtp', 
     'host' => 'ssl://smtp.gmail.com', 
     'port' => 465, 
     'username' => '[email protected]', 
     'password' => 'xxxxx', 
    ], 
], 

'Email' => [ 
    'default' => [ 
     'from' => array('[email protected]' => 'Data Mining'), 
     'transport' => 'Smtp', 
     'charset' => 'utf-8', 
     'headerCharset' => 'utf-8',   
    ], 
], 

我用下面的代碼發送電子郵件。

$mail = new Email('default'); 

$mail->emailFormat('html'); 
$mail->template($template, null)->viewVars(array('body' => $mailBody)); 
$mail->to($email_to); 
$mail->subject($subject); 
$mail->replyTo(Configure::read('config.NOREPLY_EMAIL')); 

$headers = array(
    'X-MC-MergeVars' => '{"NAME": "Khushang", "REGARDS":"Khushang"}', 
    'X-MC-Template' => 'test-by-Khushang' 
); 

$mail->setHeaders($headers); 
$mail->send(); 

太謝謝你了...

+0

也許您必須使用類'CakeEmail',而不是'Email' – mnv

+0

在CakePHP 3.X的新版本,沒有像CakeEmail這樣的類。它被電子郵件取代。 我已經使用CakeEmail,它會給我這個錯誤。 錯誤:找不到'App \ Controller \ CakeEmail'類 –

回答

3

你給transport配置在EmailSmtp但是你有沒有在EmailTransport配置定義它。

要麼設置'transport' => 'Smtp','transport' => 'default',

OR

'default''EmailTransport''Smtp'

+0

已解決。我需要設置'transport'=>'default'的第一個配置。非常感謝你的知識和方法。 –

+0

我們需要在EmailTransport配置的Classname中定義Smtp。我只有這樣做,它工作正常。非常感謝... –