前回はCakePHPのバリデーション機能についての説明・実装方法について紹介しました。
今回はローカル環境でメールを送信する方法についてご紹介します。
今回はローカル環境でメールを送信する方法についてご紹介します。



 

 
 

        'gmail' => [
            'host' => 'smtp.gmail.com',
            'port' => 587,
            'username' => '送信アドレス', //    ・・・①
            'password' => 'パスワード', //        ・・・②
            'className' => 'Smtp',
            'tls' => true
        ],
    /**
     * confirm method
     *
     */
    public function confirm()
    {
        if ($this->session->check('inputs')) {
            $inputData = $this->session->consume('inputs'); // ・・・①
            $mail = $inputData['mail'];
            $name = $inputData['name'];
            $message = $inputData['contents'] . "\n";
            $mailer = new Mailer(); // ・・・②
            $mailer->setTransport('gmail'); // ・・・③
            $mailer
            ->setEmailFormat('text') // ・・・④
            ->setFrom(['po12oh.20@gmail.com' => 'テストサイト'])
            ->setTo($mail)
            ->setSubject('お問い合わせありがとうございます')
            ->setViewVars(['name' => $name, 'message' => $message]) // ・・・⑤
            ->viewBuilder() // ・・・⑥
                ->setTemplate('send'); // ・・・⑦
            try {
                $mailer->deliver();
            } catch (\Exception $e) {
                return $this->redirect(['action' => 'index']);
                $this->Flash->error(__('送信に失敗しました'));
            }
        }
    }
    /**
     * init
     *
     */
    public function initialize(): void
    {
        $this->loadComponent('Flash');
        $this->session = $this->getRequest()->getSession();
    }
     :
            $inputData = $this->request->getData();
            $this->session->write('inputs', $inputDat 

sendmail_from = 送信メールアドレス
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
auth_username=送信Gmailメールアドレス
auth_password=生成したパスワード
        'default' => [
            'className' => 'Mail',
        ],