2012-02-27 126 views
0

我试图从CakePHP发送电子邮件,但没有成功。我正在尝试使用CakeEmail和此代码:使用CakePHP发送电子邮件无法使用CakeEmail和SwiftMailer

$email = new CakeEmail(); 
$email->from(array('[email protected]' => __('Recruitment Job App'))) 
     ->to('[email protected]') 
      ->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' => '[email protected]', 
    '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但在这种情况下,我得到这个错误:

Fatal error: Class 'testemailView' not found in /var/www/html/jobapp/app/Controller/Component/swift_mailer.php on line 245

我使用CakePHP 2.0 .6和SwiftMailer 4.1.5,有什么帮助? 欢呼声和提前致谢

+1

致命错误似乎很清楚给我。 – 2012-02-27 04:02:36

+0

哇,你这个笨蛋,在这样的公共网站上发布你的密码 – 2012-02-27 04:13:13

+0

我想隐藏,但无论如何这是一个测试帐户,所以黑客去为它jajajaja – ReynierPM 2012-02-27 04:19:51

回答

4

您正在抛出一些重要的部分来启用电子邮件。你应该有这样的事情:

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

然后在你的email.php配置,适用于Gmail默认的配置应该looke这样的:

public $default = array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => 465, 
    'timeout' => 30, 
    'username' => '[email protected]', 
    'password' => 'secret', 
    'transport' => 'Smtp' 
); 
+0

是的,你说得对,但如果我不想使用SSL和只有基本的SMTP端口25?我尝试更改主机smtp.gmail.com和端口为25,但得到这个:连接超时 错误:发生内部错误。和我有直接的联系。 – ReynierPM 2012-02-27 05:34:04

+1

这是因为gmail只支持SSL。他们不允许端口25.这就是为什么你得到错误。 – 2012-02-27 05:35:51

+0

你已经得到了答案;)但是又有一个问题我怎么知道我的PHP是否支持SSL或者我需要什么才能使用ssl://smtp.gmail.com? – ReynierPM 2012-02-27 05:50:15