2015-12-03 42 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。我只有这样做,它工作正常。非常感谢... –