MuseにFormMailを組み込む
MuseにFormMailを組み込む [2017/11/28更新]
第3者のMuse用Mailライブラリーを使っていましたが、こちらもAccessCounter同様CGIを自サーバーに組み込むことにしました。実装はどのようにしようかと色々悩みましたが、もっとも簡単な方法で完了しました。何よりも美しい表示に感動し、動作も高速になりました。
1. CGIプログラムの入手
ここではAccessCounterと同じくフリーソフトを多く配布しているKentWebからアクセスカウンターのClipmailを入手しました。
2. 実装方法
2.1 CGIファイルのダウンロード
上記のWebからutf版をダウンロードします。shift-jis環境の方はshitt-jis版でも良いと思います。ダウンロード後フォルダ名を"clipmail'にrenameしておきます。
2.2 フォルダーの自サーバーへのアップロード
ダウンロードした"clipmail"フォルダーを自サーバーのpublic_htmlにアップロードします。ファイル修正後にアップロードすべきでしょうが、ここでは、その経過を確認するためにまずアップロードします。
アップロード後各ファイルのアクセス権を上記Webに説明されている様に設定します。
public_html->clipmailディレクトリーをFTPソフトで見た絵
2.3 MuseページでHTMLコードの挿入(4項参照ください)
Museのページにおいてオブジェクト->HTMLを挿入を選択し、上記clipmail->index.htmlの内容をそっくりそのままコピーします。
上記の様なテキストが表示されるはずです。修正後のテキストなので、多少違いますが気にしないで下さい。
Museのページはコピー元のindex.htmlとはパスが異なっていますので、挿入されたhtmlコードに記載された内容を多少変更する必要があります。
1. <link rel="stylesheet" href="style.css" type="text/css">
-> <link rel="stylesheet" href="./clipmail/style.css" type="text/css">
2. <form action="./clipmail.cgi" method="post" enctype="multipart/form-data">
-> <form action="./clipmail/clipmail.cgi" method="post" enctype="multipart/form-data">
の様にパスを変更します。
また私の場合 <div id="head-in"><h1>CONTACT - clipmail</h1></div>の部分を”CONTACT to MUN2"に変更しています。
ここで、このMuseページをパブリッシュして実際に表示される様子をみてみます。
2.4 アップロードされたファイルの修正(4項参照ください)
init.cgi
元Webの説明にも記載されていますが、自分の環境に合わせて、init.cgiを変更する必要があります。
# 送信先メールアドレス
$cf{mailto} = 'xxx@xxx.xx';
の部分を自分のメールアドレスを設定します。私の場合、'mun2@s308.xrea.com'にしています。このアドレスは送信者に確認メールに送るとき”返信先”として表示されるので遮蔽したい場合は工夫が必要でしょう。私の場合はこのアドレスはメインのプライベートアドレスでもないので、そのまま使用しています。
次に
# 送信後の戻り先【URLパス】
$cf{back} = '../index.html';
についてはメール送信後の戻りページですが、index.htmlに戻るのは不自然なので、メールページである'../mail.html'にしています。
conf.html, error.html, thanks.html
私の場合、head-inの'CONTACT - clipmail'の部分を'CONTACT to MUN2'に変更しているので、'tmpl'ディレクトリにあるこれらのファイルの該当部分を修正しておきます。
style.css
style.cssはHTMLフォームを装飾するためのファイルであるが、body部分のbackgroundの色をこの中に指定すると、Museで設定されたbackuground colorより優先して機能するので、この部分をコメントアウトしています。
2.5 実際の動作確認
これで動作するはずですが、実際の動作確認は必要です。この実装はメールのページに実際に適応しています。問題があればこのページから質問いただければ、アドバイスできると思います。
3. 結論
今回はAccessCounterほど簡単ではなかったが、何とか実装することができた。このプログラムでは’送信する’を押した後CGIで書いたページに移動します。本当は同じメールページ内で表示したかったのですが特に支障がないので、このままにしています。いずれBBSの実装でこの処理の検討が必要になることと思います。完成品は当ホームページのmail.htmlを参照ください。
4. 追記[2017/11/28]
"3.結論"で書いた通り、BBS実装でさらに正しい実装方法を学ぶことができたので、ここに実装方法を追記しておきます。これにより、全ての問題点が解決しています。
4.1 "2.3 MuseページでHTMLコードの挿入"の部分の修正
”Museのページにおいてオブジェクト->HTMLを挿入を選択し、上記clipmail->index.htmlの内容をそっくりそのままコピーします。”と書いていますが、下記のサイトを参考にHTMLを編集します。
https://helpx.adobe.com/jp/muse/using/embedding-videos-html-content.html
今回はBBSとは異なり"hight"を固定したいので、HTMLには下記の様に挿入しています。
<iframe src="./clipmail/index.html" width="938" height="800" marginwidth="0" marginheight="0" frameborder="no" scrolling="yes" style="border:0px;"></iframe>
4.2 "2.4 アップロードされたファイルの修正"の部分の修正
init.cgi
conf.html, error.html, thanks.html
この部分の訂正はありません。上記2.4項の通りに修正を行ってください。
style.css
style.cssはhtml挿入部分の内部にしか影響を与えないので、"background"の部分はコメントアウトする必要はありません。ただし、前回はhtmlのバックグラウンドに色のついた”長方形”を配置していたのですが、これを削除しhtml挿入部分のbackgroundをこの色に指定しています。
background: #A8DBCB;
とここで、色を指定しています。