【问题标题】:CakePHP 2.0: CakeEmail frustrationCakePHP 2.0:CakeEmail 的挫败感
【发布时间】:2011-12-01 13:27:32
【问题描述】:

在 Cake 1.3 中,EmailComponent 做了它应该做的事情。 2.0 中的新 Cake Email 类结果令人沮丧……没有发送电子邮件,没有错误……模糊的文档……

我已经尝试了所有可能的变体,用我的 SMTP、Mail() 和 Gmail 进行了尝试,但没有任何反应。这是我最近的尝试:

控制器sn-p:

//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 配置文件:

类 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'
);

有人可以发布电子邮件类的工作代码吗?非常感谢

【问题讨论】:

  • “什么都没有发生”并不是真正的错误描述。调试是否设置为 2?
  • Debug 设置为 2。提交表单后,我会收到一条成功消息.....永远不会发送电子邮件。
  • -1。请对未来的问题更专业一点;非建设性的批评、大写字母和给我工作代码都不是好问题。
  • 这真是令人沮丧.. $Email = new CakeEmail($s) 其中 $s 具有所有电子邮件配置变量不起作用。 $Email->config($s) 也不起作用。
  • 哦,好吧!我错过了动态创建的配置设置中的“传输”。添加 if(!isset($s['transport'])) $s['transport'] = 'Smtp';对它来说,它就像一个魅力!

标签: cakephp-2.0


【解决方案1】:

我认为您必须从 Config/email.php 显式加载配置,它不会自动加载,甚至默认配置也不会:

$email = new CakeEmail();
$email->config('default');

//or in constructor::
$email = new CakeEmail('default');

【讨论】:

  • 自 CakePHP 2.7 以来不再自动加载“默认”配置。
【解决方案2】:

在我看来你应该使用这个:

$email = new CakeEmail('gmail');

【讨论】:

    【解决方案3】:

    这是我的电子邮件配置文件。我这里没有做任何改变

    class EmailConfig {
    
        public $default = array(
            'transport' => 'Mail',
            'from' => 'Admin <no-reply@example.com>',       
            'charset' => 'utf-8',
            'headerCharset' => 'utf-8',
        );
    
    }
    

    这就是我发送邮件的方式

    $email    = new CakeEmail();
    
    $result   = $email->template('welcome')
                  ->emailFormat('text')
                  ->to($NewUser['email'])
                  ->from('admin@example.com')
                  ->send();
    var_dump($result);
    

    【讨论】:

    • 感谢 Web 开发人员。我做了你所说的一切,我看到了一个转储并为我的邮件服务器添加了正确的参数(与旧邮件组件一起使用),仍然没有发送任何内容。您可以使用此脚本发送电子邮件吗?我没有收到任何错误消息。
    • 感谢 Web 开发人员的解决方案,原来是这个问题
    猜你喜欢
    • 2017-08-07
    • 2013-10-12
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2010-11-09
    • 2011-06-27
    相关资源
    最近更新 更多