我正在使用CakePHP 3.0.15,因此我不得不使用use Cake\Network\Email\Email;
而不是use Cake\Mailer\Email;
。无论如何,我在EmailTransport
中的app.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
中配置传输,以便能够多次使用相同的传输配置。
谢谢!