人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

LaravelでSendgrid API 使ってメールを送信する

● LaravelでSendgrid API 使ってメールを送信する

        $to_emails = ['user01@test.com','user02@test.com'];
        $mail_subject = 'メール送信テストです';
        $mail_content = 'メール本文です';
        $type = 'html'; // html or text
        $files_info = [];

        $email = new \SendGrid\Mail\Mail();
        $email->setFrom("from@user.com", "送信 太郎" );   // メールアドレス, 日本語名
        $email->setSubject( $mail_subject );

        // To
        foreach ($to_emails as $to) {
            $email->addTo( $to );    
        }

        // 添付ファイル
        foreach ($files_info as $file ) {
            $file_encoded = base64_encode( file_get_contents($file['path']) );
            $mimetype = \GuzzleHttp\Psr7\mimetype_from_filename( $file['original_name'] );
            $email->addAttachment( $file_encoded, $mimetype, $file['original_name'], "attachment" );
        }
        
        // APIキー
        $sendGrid = new \SendGrid( $sendgrid_api_key );

        if ( strcmp($type, 'html') == 0 ){
            $email->addContent( "text/html", $mail_content );
        }
        else {
            $email->addContent( "text/plain", $mail_content );
        }
    
        // 送信
        try {
            $sendGrid->send($email);
            return true;
        } catch (Exception $e) {
            Log::debug($e->getMessage());
            throw new Exception('SendGridエラー');
            return false;
        }        
No.1831
12/29 14:55

edit