CakePHP 2.0: CakeEmail frustration
-
27-10-2019 - |
Question
In Cake 1.3, the EmailComponent did what it should do. The new Cake Email class in 2.0 turned out to be a frustration....No emails sent, No errors....vague documentation...
I have tried all possible variants, tried it with my SMTP, Mail() and Gmail, nothing happens. Hereby my latest attempt:
Controller snippet:
//on top of page
App::uses('CakeEmail', 'Network/Email');
//in method
$email = new CakeEmail();
$email->template('contact_email')
->emailFormat('text')
->to('my@gmail.com')
->from('other@gmail.com')
->send();
Email.php Config file:
class EmailConfig {
//It also does not work with a constructor
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'my@gmail.com',
'password' => '***',
'transport' => 'Smtp'
);
Can someone please post WORKING code for the Email Class. Many thanks
Solution
I think you have to load your config from Config/email.php explicitly, it is not loaded automatically, not even the default config:
$email = new CakeEmail();
$email->config('default');
//or in constructor::
$email = new CakeEmail('default');
OTHER TIPS
In my opinion you should use this:
$email = new CakeEmail('gmail');
This is my email config file . I didnt do any change here
class EmailConfig {
public $default = array(
'transport' => 'Mail',
'from' => 'Admin <no-reply@example.com>',
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
);
}
This is how i send the mail
$email = new CakeEmail();
$result = $email->template('welcome')
->emailFormat('text')
->to($NewUser['email'])
->from('admin@example.com')
->send();
var_dump($result);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow