web学習日記

プログラミングやweb関係を学んだことを呟くブログ

CakePHP3のメールの使いた方についてはまったこと

f:id:nana205:20190614011943j:plain

基本の使い方

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