CakePHP3のメールの使いた方についてはまったこと
基本の使い方
CakePHPの公式だと
$email = new Email('default');
$email->from(['me@example.com' => 'My Site'])
->to('you@example.com')
->subject('About')
->send('My message');
ここでメールをしていて new Email('default')のdefaulltとって何なのだろうと疑問に思ったのです。 これを調べたらどうやらapp.phpに記述している設定キーのようです。
設定
<?php 'EmailTransport' => [ 'default' => [ 'className' => 'Mail', // The following keys are used in SMTP transports 'host' => 'localhost', 'port' => 25, 'timeout' => 30, 'username' => null, 'password' => null, 'client' => null, 'tls' => null, 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), ], ],
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'you@localhost',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
],
],
Emailはメール設定、EmailTransportはメール送信の設定を記述しているようです。 new Email('default')のdefaultは設定の['Email']['default']を参照するようです。
問題はメール送信のコードを書き間違いていました。
はまったこと
公式より
$email = new Email();
$email->to('to@example.com', 'To Example');
$email->addTo('to2@example.com', 'To2 Example');
// メールの To 受信者は to@example.com と to2@example.com
$email->to('test@example.com', 'ToTest Example');
// メールの To 受信者は test@example.com
になっていますが、3.4以降は$emai->to~は廃止されたようで、使えませんでした。
代わりに setFrom() 、 setTo() 、 setCc() 、 setBcc() そして、 setSubject() を使用してください。
とのことでよく確認したほうが良いかも。以上
CakePHP3のメールの使い方 s4-ba.hatenablog.jp
CakePHP公式より https://book.cakephp.org/3.0/ja/core-libraries/email.html