メールフォーム送信時にエラーが出て送信できない

【環境情報】
・baserCMSのバージョン:(例)5.2.3
・レンタルサーバー名:ロリポップ
・使用テーマ:BcThemeSample
・PHPスキル(自己評価):全くわからない

メールフォームから「送信する」で以下のメッセージが出ます。データベースの方には送られているのですが、送信完了の画面にはならず、送信先メールの方にも届きません。

エラー : 送信中にエラーが発生しました。しばらくたってから再度送信お願いします。syntax error, unexpected single-quoted string “) ?>”, expecting “)”

どこのデータに問題があるかも分からず、お分かりの方いましたらよろしくお願いします(情報足りなければ必要なもの提供します)。

@iustam さん
こんにちは!

baserCMS 5系(バージョン5.x.x)を使用している場合、こちらのファイル↓に、何かエラー文は出ていないでしょうか?
/logs/error.log

また、しばらくたってから再度送信した場合も、同じエラーになりますか?

早速のご回答ありがとうございます。

数時間経っても同じエラーが出ます。

エラーとして出ていたのはこちらです。
(念のため、サーバー名らしきところだけ伏字(xxxxx)にさせて頂いています。)

2026-04-22 16:52:55 error: [Cake\Routing\Exception\MissingRouteException] A route matching /recruitment/company/recruitment/recruitment/recruitment could not be found. in /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/baserproject/baser-core/src/Routing/RouteCollection.php on line 180
Stack Trace:

  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Router.php:197
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php:96
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/baserproject/baser-core/src/Middleware/BcRequestFilterMiddleware.php:87
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php:69
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php:115
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:60
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Server.php:103
  • /home/users/0/xxxxxxxxxxxxx/web/baser_2026/webroot/index.php:42
  • [main]:

こちらで内容足りますでしょうか。何卒宜しくお願い致します。

「いいね!」 1

@iustam さん
情報ありがとうございます!
以下2点ご確認をお願いできますでしょうか…!

1 . エラーが出ているフォームについて
今回のエラーは、他のメールフォームでも発生していますでしょうか?
それとも、今回エラーが出ているフォームのみで発生していますでしょうか?

2 . カスタマイズの有無について
使用テーマが「BcThemeSample」とのことですが、現在テンプレートやPHPファイルのカスタマイズはされていますでしょうか?

表示されているエラーが syntax error(構文エラー)のため、もしカスタマイズされている場合は、該当のPHPファイル内で記述ミス(括弧の閉じ忘れなど)がある可能性があります。

また、エラーログに出ている
A route matching /recruitment/company/recruitment/recruitment/recruitment could not be found.
について、URL内で recruitment が繰り返し付与されており、想定しないURLになっているように見受けられます。

カスタマイズをされていない baserCMS 5.2.3 をご利用の場合は、原因切り分けのため、
今回エラーが出ているメールフォームの設定画面から「詳細設定>メールフォームテンプレート名」と「オプション>レイアウトテンプレート名」を教えていただけますと幸いです!

よろしくお願いします!

「いいね!」 1

返答おそくなりましてすみません。
以下、回答です。

1=他のフォームでも同じエラーが出ています。

2=PHP初心者のため下手にいじれず、変えたのはフォーム送信時に送られるメールの文章を変えるため、以下のファイルの文面だけを変えました(ラストのIPアドレスの表示を削除したのですが、原因の可能性ありますでしょうか)。メールフォーム設定の送信メールテンプレート名の「編集する」からは参照先のフォルダが違うようでエラーでできなかったため、phpファイルを直接探して修正しました。
/plugins/BcThemeSampleCopy/templates/plugin/BcMail/email/text/mail_default.php
(テーマはコピーして使用、「mail_default」は「mail_contact」などに変更して使っています。)

メールフォームテンプレート名=default
レイアウトテンプレート名=親フォルダの設定に従う(default)

先日まで4系を使用しており、5系に新規で作成し始めたところで、
・インストール時にサーバーにインストールができない
・今とは別のテーマで「サイト管理でデバイス設定を利用する」を適用したところ、管理画面にも到達できないエラーが出る(再インストール)
・メール設定>SMTP設定でロリポップのメールが送信テストで弾かれてしまう(別のメールアドレスでは送信できています)
などのエラーが相次いで今に至っているのですが、このあたりも影響があるのでしょうか。

お手数おかけいたしますが、何卒よろしくお願い致します。

@norim28さん

改めてmail_default.phpを見直したところ、文字を変更する際誤ってコードの一部を消してしまっていました。そちらを直したところ、無事にメールフォームから送信できました。

こちらのミスだったところ、ご指摘頂きましてありがとうございました。

ただ、ご指摘のあった、
A route matching /recruitment/company/recruitment/recruitment/recruitment could not be found.
のエラーは吐き続けています。この「recruitment」、4系の時に使っていました(それでも「recruitment」は親フォルダの1つのみです)が、今の5系では使用していません。4系のデータは削除しており、そのデータを参照するようなページも作ってはいません。

先ほど提示しました、「ロリポップのメール」は送信テストで今も弾かれ、しばらくクルクルしたあと、「テストメールの送信に失敗しました。ログを確認してください。」でログを見ても上記のエラーがあるだけで他にはありませんでした。
1つ気になったのが、エラーログの「Request URL: 」「Referer URL: 」に3~4系の時に使用していて今はないデータやURLの表記があり、これは何を意味していますでしょうか(5系インストール時に、サーバーも変更しています)。

こんにちは!
解決済のタグがついていましたが、気になったのでコメントさせていただきました。

エラーログに表示されている「Request URL」は実際にリクエストされたURL、
「Referer URL」はそのページに遷移してきた元のページを示しています。

そのため、ログに旧URLが出ている場合は、過去データが残っているというよりも、
現在もどこかからそのURLへのアクセスが発生している可能性があるのかなと思いました。

Referer URL を手がかりに遷移元のページを確認すると、
どこでそのURLが生成されているか特定しやすいかもしれません。

また、エラーログで /recruitment/… が増えている件については、
固定ページ本文やテンプレートなどに旧パス(recruitment)が
相対リンクとして残っており、現在のURLに連結されてしまっている可能性も考えられるかなと思いました。

@buli さん
エラーの件ご回答頂きありがとうございます。
ここに上げたときのエラーは解消したため、解決済のタグをつけさせて頂きましたが、以前としてご指摘のところは出続けています。

以前のデータは削除しましたが、4系の時の固定ページをWordにコピーしたものを5系に貼り付けたので、そのせいでしょうか?一度固定ページのソース調べてみようかと思います。

「いいね!」 1

@buli さん
固定ページなど、4系のデータをコピーしたところを一通り見て、リンクの貼られていたところはすべて削除・変更したのですが、未だに以下のようなエラーが出ています。

2026-04-24 12:51:26 error: [Cake\Routing\Exception\MissingRouteException] A route matching /sketch/archives/company/contact/sketch could not be found. in /home/users/0/xxxxxxxxx/web/baser_2026/vendor/baserproject/baser-core/src/Routing/RouteCollection.php on line 180
Stack Trace:

  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Router.php:197
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php:96
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/baserproject/baser-core/src/Middleware/BcRequestFilterMiddleware.php:87
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php:69
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php:115
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:82
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Runner.php:60
  • /home/users/0/xxxxxxxxx/web/baser_2026/vendor/cakephp/cakephp/src/Http/Server.php:103
  • /home/users/0/xxxxxxxxx/web/baser_2026/webroot/index.php:42
  • [main]:

Request URL: /sketch/archives/company/contact/sketch/(←現在はない)
Client IP: (心当たりのないIP)

Request URLとClient IPが異なりエラー内容が同じものも出ており、エラー内容が

[Cake\Http\Exception\NotFoundException] Not Found in /home/users/0/xxxxxxxxx/web/baser_2026/vendor/baserproject/bc-blog/src/Service/Front/BlogFrontService.php on line 204
(以下にStack Traceあります)

というものもあります。
今使用しているアドレスでは、

2026-04-24 12:34:53 error: [Laminas\Diactoros\Exception\RuntimeException] Empty or non-existent stream identifier or file path provided: “/home/users/0/xxxxxxxxx/web/baser_2026/webroot/files/uploads/limited/DSC_0040__large.jpg” in /home/users/0/xxxxxxxxx/web/baser_2026/vendor/laminas/laminas-diactoros/src/Stream.php on line 354
(こちらも以下にStack Traceあります)

というのがありました。

いろいろと上げてしまい申し訳ありません。なにかお分かりのところありましたら教えて頂けますと助かります。

何卒よろしくお願い致します。

ログの内容を拝見する限り、いくつか原因が混在している可能性がありそうです。

まず、/sketch/… のように同じ単語が繰り返されているURLについては、
相対パスで生成されたリンクが連結されている形に見えるため、
テンプレートやJS等に相対パスの記述が残っていないか、念のため再度ご確認いただくと良いかもしれません。

一方で、Client IP に心当たりがないとのことですので、
外部(クローラーや過去のリンク)から旧URLへアクセスされている可能性も考えられます。
この場合、サイト内を修正してもログ自体は一定期間出続けることがあります。

また、Blog の NotFoundException についても、
存在しない記事URLへのアクセスが発生しているケースと考えられそうです。

3つめに引用いただいた「〜DSC_0040__large.jpg〜」とある
画像のエラーについては別件となり、
該当ファイルがサーバー上に存在しないことによって発生している可能性が高いため、
パスやファイル配置のご確認をされると良いかと思います。

頻度(どの程度の間隔で発生しているか)も確認すると、
内部要因か外部要因かの切り分けがしやすくなるかと思います。

「いいね!」 1

@buli

度々のご回答ありがとうございます。
今はおもに3種が出ており、以下のものになります。

error: [Cake\Http\Exception\MissingControllerException] Controller class `` could not be found. in /home/users/0/main.jp-msc-jp/web/baser_2026/vendor/cakephp/cakephp/src/Controller/ControllerFactory.php on line 308

↑この系統のエラーが約50秒間隔で、時々40分ほど空きます。

error: [Cake\Routing\Exception\MissingRouteException] A route matching /company/company/company/contact/recruitment/recruitment/recruitment/contact/contact_sp could not be found. in /home/users/0/main.jp-msc-jp/web/baser_2026/vendor/baserproject/baser-core/src/Routing/RouteCollection.php on line 180

↑こちらの系統は、ログにある限りで本日はまだ1回ずつのみですが、数が多いです。

error: [Cake\Http\Exception\NotFoundException] Not found. in /home/users/0/main.jp-msc-jp/web/baser_2026/vendor/baserproject/baser-core/src/Controller/AppController.php on line 519

↑こちらについては数秒おきに数回あり、4時間ほど空いて再度出ています。

旧環境からの引き継ぎは行っておらず、テンプレートやJSはインストール時のまま使用しており、エラーに出ているControllerFactory.php、RouteCollection.php、AppController.phpやStack Traceに出ているphpも初期のままで特に変更はしていない(どれがどれなのかも分かっていないため、怖くて手を入れられません :cry:)のですが、相対パスは何かで残ってしまうのでしょうか?
サイトのURLは以前と同じものを使用していますが、こちらが影響している可能性はありますでしょうか?
見当違いの返答でしたら申し訳ありません。必要な情報あれば提供しますのでよろしくお願い致します。

ご確認ありがとうございます。
ログ内容を拝見する限り、現状出ている3種類のエラーはいずれも、
「存在しないURLや、正常に解釈できないURLへのアクセスが発生している」
際に記録されている可能性が高そうに見えます。

特に、
/company/company/company/contact/recruitment/recruitment/...
のように同じパスが繰り返されているURLは、
正常なリンク生成というより、相対パスの連結や
Botやクローラー等による異常アクセス時によく見かける形に近い印象があります。

また、MissingControllerException についても、
本来は ArticlesController のように Controller 名が表示される事が多いですが、
今回は Controller 名自体が空になっているため、
CakePHP側でURLを正常に解釈できなかった可能性が高そうに感じました。

NotFoundException についても、
「指定URLに対応するページやデータが見つからなかった」際に出るエラーのため、
こちらも外部アクセス由来の可能性がありそうです。

そのため、現状のログだけを見る限りでは、
baserCMS本体のファイル(ControllerFactory.php / RouteCollection.php / AppController.php 等)というよりも

  • 旧URLへのアクセス
  • 外部サイトや検索エンジンに残っているリンク
  • Botやクローラーによるアクセス
  • 相対パス由来のURL増殖

などが発生している可能性が高いのかなと思いました。

旧環境のデータを引き継いでいない場合でも、
検索エンジンや外部リンク経由で過去URLへアクセスされるケースはあるため、
「ログに旧URLが出ている = 内部に旧データが残っている」とは限らないと思われます。

もし切り分けを進める場合は、

  • Request URL
  • Referer URL
  • Client IP
  • User-Agent

などを確認すると、Botアクセスかどうかや、
どこから遷移しているか見えやすくなるかもしれません。

Google Search Console などで、
サイトマップ再送信やインデックス状況確認を行い、
現在どのURLがクロール対象になっているか
整理してみるのも良いかもしれません。

「いいね!」 1

詳細ご説明ありがとうございます。
現状サイトの運用自体には問題は起きていないため、様子見ながら調べていきたいと思います。
何度もご対応頂きありがとうございました。

「いいね!」 1