CakePHP4でメールを使う方法
167 回閲覧されました
みなさんこんにちは、jonioです。
今回はメールを使う方法のメモになります。
CakePHPのバージョン
4.5.4です。
対応メール
Gmailです、他のメールの形式だとやり方が変わるはずです。
アクション
コントローラーに下記のコードを書きます。
use Cake\Mailer\Mailer;
・
・
・
private function sendApprovalRequestEmail($company)
{
$email = new Mailer();
$email->setFrom('送信元のメールアドレス')
->setTo('送信先のメールアドレス')
->setSubject('メールのタイトル')
->deliver("メールの中身");
}
app.php
「EmailTransport」の項目のコードを下記にします。
'EmailTransport' => [
'default' => [
'className' => 'Smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'timeout' => 30,
'username' => '自分のGmailのアドレス',
'password' => '設定するパスワード',
'client' => null,
'tls' => true,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
],
8行目の「設定するパスワード」は下記の記事(アプリパスワードの取得の項目)を読めばわかります。
ネットの記事を読むとこれでメールを送ることができるようになると解説しているのですがapp_local.phpも設定しないと動作しないみたいです。
app_local.php
「EmailTransport」の項目のコードを下記にします。
'EmailTransport' => [
'default' => [
'className' => 'Smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'timeout' => 30,
'username' => '自分のGmailのアドレス',
'password' => '設定するパスワード',
'client' => null,
'tls' => true,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
],
app.phpと全く同じにします。
これでメールが動作するはずです。