首页 > 解决方案 > CakePHP:传输配置“gmail”丢失

问题描述

我使用的是 CakePHP 3.0.15,所以我不得不use Cake\Network\Email\Email;代替use Cake\Mailer\Email;. 无论如何,我的EmailTransportinapp.php配置如下:

'EmailTransport' => [
    'gmail' => [
        'className' => 'Smtp',
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'timeout' => 30,
        'username' => 'examplesender@gmail.com',
        'password' => 's2d5f8t9',
        'client' => null,
        'tls' => null,
    ]
],

并在我的控制器中有这个:

    $email = new Email();
    $email->transport('gmail')
        ->to('examplereveiver@gmail.com', 'Example Receiver')
        ->from('examplesender@gmail.com', 'Example Sender')
        ->subject('Test Subject')
        ->send('Message!!!!!');

然后它给了我错误:

Transport config "gmail" is missing.

但是,当我在控制器中配置传输时,就在使用它之前,如下所示:

    Email::configTransport('gmail', [
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'username' => 'examplesender@gmail.com',
        'password' => 's2d5f8t9',
        'className' => 'Smtp'
    ]);

它工作并发送电子邮件。尽管如此,我还是想配置传输,app.php这样我就可以多次使用相同的传输配置。

谢谢!!!

标签: phpemailcakephpcakephp-3.0

解决方案


推荐阅读