CakePHP3はapp.phpにてメール送信のfromのデフォルトを簡単に設定できる。
固定ならそれで問題ないのだが、問題はDBの設定でfromを指定したい場合。
bootstrap.phpを見てみると、app.phpの設定はConfigure::consumeで削り取られており、
あとでConfigure::writeをしてもfromを動的に反映させることができない。
Emailのクラスを見ても設定できる方法はない。
しかしよく見ると、EmailにはStaticConfigTraitが使用されている。
これを利用することでfromのデフォルトを動的に指定することができる。
下記のようなコードをアプリケーションの共通処理で行っておけば良い。
$keys = Email::configured();
foreach ($keys as $key) {
$emailConfig = Email::config($key);
$emailConfig['from'] = $config->from_setting;
Email::drop($key);
Email::config($key, $emailConfig);
}
設定は変更できないので、丸々入れ替える形。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント