質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4756閲覧

予約システムの送信エラー[mts-simple-booking-c]

May-may

総合スコア2

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/26 15:25

編集2021/10/28 09:50

前提・実現したいこと

WordPressのmts-simple-booking-cというプラグインを使用して、予約システムを導入しようとしています。
フォームを送信すると、メールの送信を失敗しました。電話で予約の確認をお願いします。となってしまいます。
wordpress側の予約リストには反映されており、メールの送信がうまく行ってないようです。

以下のことを試したのですが、うまくいきません。
お力を貸してください。よろしくお願い致します。

該当のソースコード

/** * 予約登録・メール送信処理内部ディスパッチャー * */ public function internal_dispatcher() { $action = isset($_POST['action']) ? $_POST['action'] : ''; if (is_page(self::PAGE_BOOKING_FORM)) { if ($action == 'confirm') { $booking_form = $this->_load_module('MTSSB_Booking_Form'); if ($booking_form->front_booking()) { $mail = $this->_load_module('MTSSB_Mail'); // 予約メールをお客・自社・モバイルへ送信、リダイレクトページがあれば実行 if ($mail->booking_mail()) { $next_url = self::get_permalink_by_slug(self::PAGE_BOOKING_THANKS); if ($next_url) { wp_redirect($next_url); exit(); } } else { // メールの送信エラーセット $booking_form->error_send_mail(); } } } // jQueryを読込む //wp_enqueue_script('jquery'); } } /** * 予約処理、お問い合わせ処理フォームディスパッチャー * */ public function form_dispatcher($content) { if (is_page(self::PAGE_BOOKING_FORM)) { $booking_form = $this->_load_module('MTSSB_Booking_Form'); $content = $booking_form->booking_form($content); } return $content; } /** * フロントページ処理モジュールのロード * * @class_name * @return Module Object */ private function _load_module($class_name) { if (!class_exists($class_name)) { $filename = strtolower(str_replace('_', '-', $class_name)) . '.php'; require(dirname(__FILE__) . "/$filename"); } switch ($class_name) { case 'MTSSB_Booking_Form': if (empty($this->oBooking_form)) { $this->oBooking_form = new MTSSB_Booking_Form(); } return $this->oBooking_form; case 'MTSSB_Mail': if (empty($this->oMail)) { $this->oMail = new MTSSB_Mail(); } return $this->oMail; default: break; } return null; } /** * スラッグ名から投稿のリンクURLを取得する * * @slug スラッグ名 * @type post_type(='page') */ static public function get_permalink_by_slug($name) { global $wpdb; $post_id = $wpdb->get_col($wpdb->prepare(" SELECT ID FROM {$wpdb->posts} WHERE post_status='publish' AND post_name=%s ORDER BY ID", $name)); if (empty($post_id)) { return false; } return get_permalink($post_id[0]); } /** * Uninstall * */ public function uninstall() { } }

試したこと

https://teratail.com/questions/70694
https://oshiete.goo.ne.jp/qa/8742349.html

上記のサイトをもとにやってみたのですがうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自分も同様の現象で詰まり解消いたしましたので、一応ですが、こちらに残しておきます。

自分のケースでは、"管理画面「予約システム>施設情報>E-Mail」にメールアドレスが登録されていないから"というだけでした…。完全な自分のうっかりです。初期設定ではこの欄に日本語の代替テキストが設定されていました。

プラグインの該当箇所(mtssb-mail.php 28~87行目)を見ていると、wp_mail関数の引数にその代替テキストが参照されてエラーを起こしていたようです。

投稿2023/09/20 05:33

dokka-T

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

メールが送信できないだけの不具合ということであれば、WordPressにあるwp_mail関数が正しく動いてないということだと思います。mts-simple-booking-cはメール送信処理を自前で行ってはいないと思われます。

参考)
http://mtssb.mt-systems.jp/blog/wordpress3-4-メール送信の不具合について/

原因についてはサーバ環境などにもよるのでなんとも言えません。サーバのエラーログや

wp_mail 送信できない

で検索して、色々調べて対応してみてください。

投稿2021/10/28 10:08

AbeTakashi

総合スコア4594

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

May-may

2021/10/28 10:43

そうなのですね、、 こちらの質問と似ているのかなって思ったのですが、 https://teratail.com/questions/70694 これだと $booking_form がローカル変数になっていて、このクラスのインスタンスのプロパティである booking_form にはなりません。 $this->booking_form にしないと。 ※たぶん $mail も同じ 上記のことを試してもダメでした、、、 ご回答ありがとうございます。もう少し調べてみます。
AbeTakashi

2021/10/28 11:02

参考サイトは4年以上前、かつ自分で改造しているという状況ですのですので、一般的な話ではないと思いますよ。同じような改造をされているという話なら別ですが、そういう話ではないですよね? 回答にも書いてますがサーバーのエラーログ(Apacheもしくはnginxのエラーログ)はみましたか? メールを送信しようとして失敗しているなら何かしらエラーログが出ている可能性が高いです。質問文にはその辺の情報もなく「メールの送信がうまく行ってない」という状況だけしか書かれていないので、残念ながら具体的なアドバイスが出にくい状況にあるかと思います。エラーログを見ても原因が分からないと言うことであれば、そのエラーログの内容を質問文に追記してください。
May-may

2021/10/28 13:10

回答をもとに調べてます、、ありがとうございます ちなみにcontact form7は動いているのですが、関係ありますか?
May-may

2021/10/28 13:17

エラーログの見方を検索しているのですが、分からず苦戦しております、、
AbeTakashi

2021/10/28 13:39

なるほど、contact form7は動いているんですね。contact form7も基本は内部でwp_mailを叩いてるようですので、ちょっと不思議ではあります。例えばcontact form7と同時にWP Mail SMTPというプラグインを使っていたりしますか? この辺が影響している可能性もありますし、もし使ってなければこれを入れてSMTP経由でメールを送信することで解決する可能性もあります(SMTPを指定する必要がありますが)。 どちらにせよ、エラーログを見ればかなり原因がある程度まではっきりしそうなのですが、エラーログが見れないとなるとなかなかやっかいです。レンタルサーバを使ってるのであれば、レンタルサーバのマニュアルなどに記載があるかもしれません。レンタルサーバの運営に問い合わせるのもありでしょう。ご自分でサーバを構築されたのであれば、サーバを構築した際に参考にしたドキュメントを元になんとかみつけてください。エラーログの場所はApacheもしくはnginxの設定ファイルに書かれています。場所が見つかれば、ファイルを落としてPCで開くなり、コマンドラインのtailコマンドなりで見ることができます。
May-may

2021/10/28 14:31

ありがとうございます! サーバーはさくらのレンタルサーバーを使っています。 https://help.sakura.ad.jp/360000208561/ ↑エラーログの見方合っていますでしょうか?、、、、
AbeTakashi

2021/10/28 14:47

本日のエラーログというのをダウンロードして、gzip圧縮ファイルがダウンロードされるので解凍ソフトで解凍してください。それをテキストエディタとかで開いてください。エラーを出した時刻と同じ時刻にエラー情報が出ていると思います。Errorなりの文字列などで検索してみてください。
May-may

2021/10/28 14:56

本日のエラーログ を更新して確認しても、何も書いて無いです、、、
AbeTakashi

2021/10/28 15:05 編集

アクセスログを出す設定を入れてありますか? エラーログの↑の方に設定を入れると書いてますが(エラーログも保存するのチェックも入れる)。入れてても出ないのであれば、ちょっとお手上げですが。まったくプログラムがエラーログを出さないようにしてるとかは無いような気がしますので、さくらのレンタルサーバさんに聞いてみた方が良いかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問