发送使用CakePHP的电子邮件不能使用CakeEmail和SwiftMailer

时间:2012-02-27 03:56:37

标签: php cakephp frameworks cakephp-2.0

我正在尝试从CakePHP发送电子邮件,但没有成功。我正在尝试使用CakeEmail和这段代码:

$email = new CakeEmail();
$email->from(array('reynierpm@gmail.com' => __('Recruitment Job App')))
      ->to('reynierpm@gmail.com')
          ->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' => 'mlrepemi@gmail.com',
    '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但是在这种情况下我得到了这个错误:

  

致命错误:第245行的/var/www/html/jobapp/app/Controller/Component/swift_mailer.php中找不到“testemailView”类

我正在使用CakePHP 2.0.6和SwiftMailer 4.1.5,有什么帮助吗? 欢呼并提前致谢

1 个答案:

答案 0 :(得分:4)

您要省略一些重要的部分来启用电子邮件。你应该有这样的东西:

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

然后在你的email.php配置中,你的gmail默认配置应该像这样:

public $default = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'timeout' => 30,
    'username' => 'my@gmail.com',
    'password' => 'secret',
    'transport' => 'Smtp'
);