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

Was it helpful?

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
scroll top