TransmitMail
TransmitMail copied to clipboard
質問: 1. idとnameは英語にしても動きますか? 2. 確認画面なしにできますか? 3. htmlをphpに変更して良いですか?
こんにちは TransMitMailについて3点教えてください。
1 idとnameは英語にしても動きますか? 2 確認画面なしにできますか? 3 htmlをphpに変更して良いですか?
お手数ですがよろしくお願いします。
Twitter の DM でも同様のご質問をいただいておりましたので、こちらでもお返事させていただきますね。
1 idとnameは英語にしても動きますか?
はい、問題ないと思います。
2 確認画面なしにできますか?
下記サイトが参考になるかと思います。
Transmitmail ver2で確認画面を飛ばしたいとき | 株式会社デザインスープ
3 htmlをphpに変更して良いですか?
テンプレートファイルの html を、ということでしたら、拡張子は何に変更していただいても問題なく動作するかと思います。ただ、 php に変更しても php は動作しないかと思います。
以上です。ご参考になれば幸いです。
ありがとうございます。 phpを動かすのはどうにもできないでしょうか?
phpを動かすのはどうにもできないでしょうか?
どうにもできなくはないと思います。利用している tinyTemplate というテンプレートエンジンをカスタマイズすれば利用できるようになると思います。ただ、私が開発したライブラリではないので、カスタマイズが難しく、実現には至っていません。。
もしくは、他の php を利用できるテンプレートエンジンを利用するように TransmitMail をカスタマイズするとか、 php ファイル自体を参照するように TransmitMail をカスタマイズするなど、いろいろと方法は考えられると思います。
ただ、 TransmitMail 標準の機能としては、現時点ではテンプレートファイル内で php を動作させることをサポートしていない、といった状況です。
ありがとうございます。 また何かあれば教えてください。
index.phpにインクルードしたら読み込み出来たのですが、バリデーションが機能しません。
require_once 'lib/TransmitMail.php';
$tm = new TransmitMail();
$tm->init('config/config.yml');
$tm->run();
require_once '../header.php';
require_once 'input.php';
require_once '../footer.php';
今はこういう感じです。 http://renewal.pickphat.com/contact/
どこが違うのでしょうか?
お手数ですがよろしくお願いします。
require_once '../header.php'; require_once 'input.php'; require_once '../footer.php';
上記の部分はあくまで php を require
しただけなので、 require
した部分は TransmitMail で利用しているテンプレートエンジン( tinyTemplate )とは別の読み込み方法なので、 tinyTemplate のバリデーション機能は動作しません。 TransmitMail でメソッドとして定義しているバリデーション機能を直接使えば動作するかもしれませんが、私は未確認です。
できそうな気がするのですが、バリデーションが機能しません。 あと、送信ボタン押すと画面が変わるのですが、finish.htmlの内容が出ません。
どのようなコードを書かれていて、どのような動作を想定されているか、ご教示いただけるとありがたいですmm また、 PHP と TransmitMail のバージョンも教えていただけるとありがたいです。
ありがとうございます。
phpバージョン:7.3 TransmitMail:2.6.1
index.php
require_once '../header.php';
require_once 'lib/TransmitMail.php';
$tm = new TransmitMail();
$tm->init('config/config.yml');
$tm->run();
require_once '../footer.php';
input.html
<form action="./" method="post">
<input type="hidden" name="csrf_token" value="{$csrf_token}">
<dl>
<dt><label for="msg">お問い合わせ詳細 <span>必須</span></label></dt>
<dd><textarea name="msg" id="msg" required aria-required="true" value="{$お問い合わせ詳細}"></textarea>
<input type="hidden" name="required[]" value="お問い合わせ詳細">
{if:$required.お問い合わせ詳細}
<p>{$required.お問い合わせ詳細}</p>
{/if:$required.お問い合わせ詳細}
</dd>
</dl>
<dl>
<dt><label for="name">お名前・会社名 <span>必須</span></label></dt>
<dd><input type="text" name="name" id="name" required aria-required="true" value="{$お名前・会社名}"></dd>
<input type="hidden" name="required[]" value="お名前・会社名">
{if:$required.お名前・会社名}
<p>{$required.お名前・会社名}</p>
{/if:$required.お名前・会社名}
</dl>
<dl>
<dt><label for=" email">返信先メールアドレス <span>必須</span></label></dt>
<dd><input type="email" name="email" id="email" required aria-required="true" value="{$返信先メールアドレス}"></dd>
<input type="hidden" name="required[]" value="返信先メールアドレス">
{if:$required.返信先メールアドレス}
<p>{$required.返信先メールアドレス}</p>
{/if:$required.返信先メールアドレス}
</dl>
</form>
<form method="post" action="./">
{$hiddens}
<input type="hidden" name="page_name" value="finish">
<button type="submit" name="submit" value="送信する">送信する</button>
</form>
やりたいことは、送信ボタン押すとエラーがあればエラーメッセージが表示され、エラーがなければ送信完了ページに推移したいです。
なぜか突然500エラーが出ました。
なぜか突然500エラーが出ました。
500エラーの内容が、画面に出力されていないでしょうか?出力されていない場合は、 error の設定を変更して、画面に出力するようにして、エラー内容を本 issue のコメントに貼り付けていただけるとありがたいです。
もしくは、 log ディレクトリ内にエラー内容が出力されていないでしょうか?
こういう状態です。
error の設定を変更しても何も出ないですし、ログも何もないです。
どこかのレンタルサーバーを利用されている場合は、レンタルサーバーの機能として、エラーログがどこかでみれたりしないでしょうか?
ロリポップなんですが、エラーログはないようです。
何かTransmitMailは関係なかったようです。 なぜかcontactというフォルダだけアクセスできないです。
503エラーは原因不明ですが直りました!
TransmitMailの件は、やはりバリデーションが機能しません。
送信ボタンで完了ページは出るようになりました。 あとはバリデーションとメール送信が動きません。
TransmitMailの件は、やはりバリデーションが機能しません。
あとはバリデーションとメール送信が動きません。
動作させようとしているコードは下記のものから変更はないでしょうか?
https://github.com/dounokouno/TransmitMail/issues/75#issuecomment-910484086
はい 基本的には変わらないです。 本当はidとnameを英語にします。
テンプレートファイルを html から php に変更したい、といった話がありましたが、それはやめて入力画面のテンプレートファイルは「input.html」というファイル名を利用している、という認識であっていますか?
また、
送信ボタンで完了ページは出るようになりました。 あとはバリデーションとメール送信が動きません。
とのことですが、 log ディレクトリに何かログファイルが出力されていないでしょうか?
いやhtmlでもphpでも良いです。 header.phpとfooter.phpが組み込んで、バリデーションとメール機能が動けば何でも良いです。
ログにエラーが出てました。
Cannot modify header information - headers already sent by (output started at /home/users/2/lolipop.jp-7084e0fe7e215321/web/renewal/header.php:19) in /home/users/2/lolipop.jp-7084e0fe7e215321/web/renewal/contact/lib/TransmitMail.php on line 1025
いやhtmlでもphpでも良いです。 header.phpとfooter.phpが組み込んで、バリデーションとメール機能が動けば何でも良いです。
そうなんでね。
ちなみに、
なぜかcontactというフォルダだけアクセスできないです。
というコメントをされていますが、 TransmitMail を設置されようとしているサイトの、簡単で構いませんのでディレクトリ構成、ファイル構成をコメントいただけると助かりますmm
いや原因不明ですがcontactフォルダにアクセスできるようになりました。 伝い忘れてすみません。
いや原因不明ですがcontactフォルダにアクセスできるようになりました。
はい、それはコメント( https://github.com/dounokouno/TransmitMail/issues/75#issuecomment-911732313 )で伺いました。
今は TransmitMail を設置されようとしているディレクトリ構成とファイル構成を教えていただけるとありがたいです。何かのヒントになるかもしれませんので。
https://ryoheiobayashi.com/archives/721
このページに
ob_start();
require_once 'lib/TransmitMail.php';
$tm = new TransmitMail();
$tm->init('./config/config.yml');
include '../header.php';
$tm->run();
include '../footer.php';
と書けば良いとありますが動きません。
えっと、 TransmitMail を設置されようとしているディレクトリ構成やファイル構成を教えていただきたいのですが、何かコメントいただくことができない理由があったりする状況でしょうか?(ディレクトリ構成やファイル構成は機密にしておかなければならない、など)
下記のコメントを拝見しますと、 ↑ ( https://github.com/dounokouno/TransmitMail/issues/75#issuecomment-912257323 )とは少し書き方が違うようですが、同じように書いても動作しない状況でしょうか?
https://github.com/dounokouno/TransmitMail/issues/75#issuecomment-910484086
フォルダ構成
新しいフォルダは無視してください。
上記のフォルダは、 index.php にアクセスすると http://renewal.pickphat.com/index.php
にアクセスすることになる、という認識であっていますか?
はい そうです。
ob_start();を追加したら、エラーログはなくなりましたが、動きは同じです。