以前配布していたフォームメール CGI を MIT ライセンスで再度配布することにしました。添付ファイルを確認してから送信できるなど、さらにパワーアップしています。
今回、以前あった「POSTMAN3」(以前は POSTMAN2 でしたが...) の方が、案件によっては手軽で使いやすいというご意見をいただきましたので、改修の上、フリーウェア(MITライセンス)として公開することにしました。
フォームメール CGI「POSTMAN3」には、下記特長があります。
下スクリーンショットは同梱サンプルの「contact.html」です。このサンプルを利用してメールを送信すると以下のような流れとなります。
入力内容に注目してください。「フリガナ」にはカタカナが、「ご予算」には数値が強制されますが、それぞれひらがなと計算式が入力されています。ここではあえてこのまま送信します。ファイルも添付してみました。
内容確認用の HTML ファイルが指定されない限り、確認画面はフォームのある HTML ファイル(ここでは「contact.html」)を利用して描画されます。また、明示的にフィールド表示位置を独自タグで指定されている場合をのぞき、各フィールドの位置に送信内容が配置されます。
ひらがなだった「フリガナ」がカタカナに変換され、計算式だった「ご予算」が計算結果の数値となっています。添付されたファイルはサーバ上に一時的に保存され、画面上に表示されます。
メール送信に成功すると、送信お礼画面となります。
このサンプルでは「お問い合わせの種類」によって送信お礼ページを振り分けています。こちらは「お申し込み」用の送信お礼ページです。
「POSTMAN3」は通常の HTML ファイルからメールを送ることができるので、デザインに制約がないのが利点ですが、name属性に従って内容をチェックする機能しかないため、name属性を偽装することで簡単に内容チェックをすりぬけられます。
より厳密に送信内容をチェックしたい場合は、弊社で開発しているカスタムフィールド CMS 「CMONOS.JP」(※有償です)に付属するフォームメール CGI「アンケート」がおすすめです。
「CMONOS.JP」の多彩な入力チェック機能を使えるほか、大容量の添付ファイルを受け取ることも可能です。
下スクリーンショットは「アンケート」を利用したフォームメールのサンプルです。
カレンダーから日付を入力したり、希望連絡方法によって動的に表示フィールドを変更したりできます。
ブラウザからの操作で、フィールドを自由に組み合わせ、各フィールドにさまざまな機能を持たせることができるのは「CMONOS.JP」ならではです。
書式付文字列フィールドタイプの詳細設定画面。入力を強制したい文字種や placeholder を設定できることがわかります。
さて弊社では、「POSTMAN3」の設置、送信フォームのコーディング、自動返信メールの設定を2万円から承っております。もしフォームメール CGI が必要でしたら、サポートお申し込みフォームよりお気軽にご相談下さい。お待ちしておりますm(_ _)m。
ご報告です。
POSTMAN3、利用させていただいています。
1点分からない部分がありまして投稿させていただきました。
機種依存文字で全角入力された場合、文字化けします。
例えば、
222-5555
十里町2-8-7
とか入力すると、-の部分が文字化けします。
下記のように、フォーム直下に下記は入力しています。
<input type="hidden" name="_" value="_">
半角だと文字化けしません。
フォームなどはUTF-8で作成しています。
全角のマイナスを半角のマイナスに変換するようにしました。現在修正版となっていますので、再度ダウンロードして「~/postman/lib/CMONOS」フォルダを差し替えていただけましたらと思います。
「たとえば」とのことですが、他に文字化けするものはありますでしょうか。よく入力される機種依存文字については文字化けしない文字へ変換するようにはなっているのですが、ほかにも、よく入力される文字で文字化けすると困る文字がありましたらぜひご教示ください。
ご対応ありがとうございます。
文字化けの件、無事、直りました。
文字化けするような状況がございましたら、また、ご連絡させていただきます。
ありがとうございます。
またなにかありましたらお気軽にご相談ください。今後ともよろしくお願い申し上げますm(_ _)m。
POSTMAN3、利用させていただいています。
フォームから、ファイル添付されたファイルを受信したいという目的で使わせていただきました。
おかげさまで、PCでは実装、動作確認もできましたが、スマ―トフォンiphone4S(ハード)5.1.1(OS)の環境ですと「ファイルを選択」のボタンがグレーアウトして、タップできませんでした。
<input type="file"の後にある<input type="hidden"が効いているのかなと消してみたりしましたが、それはそれでうまく動作できませんでした。何か解決策があればご教示くださると大変助かります。お手数ですがよろしくお願いいたします。
こんばんは。iOS の Safari ではファイルを選択するフォームは無効化されます。これは iOS の仕様ですので、どうにもなりません(´-`;。メールで送信させるなど、みなさんいろいろとご苦労なさっているようです。
以上参考になりましたら幸いですm(_ _)m。
お返事ありがとうございます。IOSの仕様でしたか。。Chromeで確認していたのですがダメでした。フォーム横にメールで送信と明示しようと思います。ご丁寧にお返事いただき、ありがとうございましたm(_ _)m。
POSTMAN3、いつも利用させて頂いております!初歩的な質問でスミマセン。管理者宛メールにCSV形式の添付ファイルを添付しないように設定するにはどうすればよいでしょうか。
こんにちは。ReadMe.html を参考に、postman.cgi ファイル冒頭の設定項目「my $sv = 'csv_';」を「my $sv = '';」としてください。
早々にお返事頂き有り難うございます!ご指示頂いたcgi部分を修正し、htmlに入れていた<input type="hidden" name="_DATA" value="csv_" />を削除して解決しました。
有り難うございました!
こんばんわ。
POSTMAN3使わせていただいてます。
機能の問い合わせなのですが、
メールの送信先にcc,bccを追加するというのはあるのでしょうか?
あるとすごく助かるのですが。
よろしくお願いします。
こんばんは。ご質問ありがとうございます。下記作業で、Cc、Bcc を指定できますが、ソースを表示すると宛先が表示されることになります。また「直前URLを制限する($ref_check = 1;)」などした方が安全上好ましいと思います。
また、ご意見をいれて、先ほど postman.cgi ファイル中に Cc と Bcc を設定できるようにした新バージョンを公開しました。よろしければ最新版をダウンロードしてお試しください。
早速の対応ありがとうございます。
まだ、試せていないのですがダウンロードしてみます。
ありがとうございました!
お忙しいところすみません。
電話番号入力の際に、下記のような現象が出ているのですが、よろしくお願いします。
※プログラムの方は、昨日、最新のものをダウンロードさせていただきました。
sampleフォルダーにあるcontact.htmlを流用させて頂いております。
<td class="field-name">
<label for="08_電話番号_N">電話番号</label>
</td>
<td class="field">
<input type="tel" name="08_電話番号_N" id="08_電話番号_N" size="50" value="" />
</td>
1.ハイフンを入れた電話番号で「電話番号を半角英数字にしてください」と表示される現象。
03-5555-6666 と入力し、確認ボタンを押すと、上記、表示が出ます。
2.(-)ハイフンをなくした状態で、確認ボタンを押すと、プレビュー画面で、先頭の0(ゼロ)が消える現象。
例えば、0355556666と入れると、355556666と表示され、返信メールでも、そのまま355556666と記載されて届く。
上記は、PCでもスマートフォン上でも出る現象のようで、解決方法があれば・・と思っています。
すいませんが、よろしくお願いします。
不具合のご指摘ありがとうございます。先頭の0が削除される問題については意図した挙動ではありませんので修正いたしました。最新版をダウンロードして「lib/CMONOS」フォルダのみ差し替えてください。
ハイフンがあるとエラーが返るのは、数字チェックが入っているためです。「"08_電話番号_N"」となっている部分を「"08_電話番号"」(数字チェックを外す)か、「"08_電話番号_A"」(英数字チェックに変える)に書き換えてください。最新版の「sample」では英数字チェックに変更いたしました。
以上参考になりましたら幸いです。
お忙しいところ、ありがとうございます。ご指摘頂きましたところ、修正しまして、表示されました。
ハイフンは、もう少し、自分の方でもチェックしないと行けないですね。
お手間を取らせましてすみません。
素晴らしいプログラムを利用させていただき感謝しております。
また、何かありましたら、よろしくお願いします。
自動返信メールの設定方法がわかりません。※メールヘッダ"From"に対応する入力欄が必要です。←の意味と、
返信文のファイルはテキストで適当に作って良いのですか?
ご質問ありがとうございます。メールヘッダFrom に対応するメールアドレス入力フォームがないと、返信先がわかりませんので、自動返信するには必須となります。
返信文のファイルは適当に作って問題ありません。同梱のサンプルを参考になさってください。同梱の説明とサンプルで設置方法がわからない場合はサポートお申し込みフォームより設置代行をお申し込みください。設置代行は2万円からとなっております。お待ちしておりますm(_ _)m。
送信日時が9時間きっちりおくれて届きます。
対応方法があればおしえていただけますでしょうか。
送信時がグリニッジ標準時となっているようです。
# 時間帯設定(日本時間)
$ENV{'TZ'} = 'JST-9';
postman.cgi の先頭の方で設定が書かれているあたりに上記を追記すると改善するのではないかと思います。なお、とりいそぎダウンロードファイルを追記したバージョンに差し替えました。
以上参考になりましたら幸いですm(_ _)m。
POSTMAN3、いつも利用させていただいています。
助かりました、ご指示の通り追記しましたら送信日時直りました。早急の対応たすかりました。
本当にありがとうございました。
参考になるご指摘ありがとうございます。
また丁寧なご報告重ねて感謝いたします。
POSTMAN 3 がお役に立てているようで光栄ですm(_ _)m。
postman3をいつも利用させてもらっています。
CGIについてお聞きしたいことがあり、コメントさせていただきます。
postman3のcgi 内のcc,bccメール設定(171~178行目)についてなのですが、
my $mail_bcc = 'user1@abc.jp,user2@abc.jp';
例のような記述をしても上手くメールが届きません。
先に記述したuser1@abc.jp に2通届いてしまいます(><) これは何が原因なのでしょうか?
お時間あるときに回答をいただけるとうれしいです。よろしくお願いします。
なんどもすみません。bcc,ccで送った先のメールの件名は
何行目のプログラムを修正すればいいでしょうか?
現在、ラジオボタンの情報がそのままメールの件名に反映されてしまっている状態です。
お手数ですが、どうかよろしくお願いします。
ご質問の件ですが、メールソフトに Bcc に設定したメールアドレスを設定し、同時に受信されていないでしょうか。
メールソフトによっては、ヘッダも内容も同一のメールを一つにまとめてしまうことがあります。また、Bcc とは別に CGI 管理者メールアドレスが To に設定されますので、関連メールアドレスを同一メールソフトで受信していると、管理者メールアドレス受信ボックスに Bcc で送った分もまとめて入ることがあります。
Bcc に設定したメールアドレスを別のメールソフト(やウェブメール)で受信できるかどうかお試しください。
メールの表題については、name が (数字_)_Subject で始まるフィールドの値が採用されます。ラジオボックスに _Subject が設定されているものと思います。_Subject を削除し、表題にしたい別のフィールドに _Subject を追記してください。くわしくは、POSTMAN3 添付の Read Me をお読みください(もしくはサポートをお申し込みください)。
以上参考になりましたら幸いですm(_ _)m。
お返事ありがとうございます!
試行錯誤した結果、無事に解決することができました^^
ほんとうにありがとうございましたm(_ _)m
こんにちは。POSTMAN3を利用させていただいているのですが、自分宛てに来るメールの件名が、「Message from 設置URL/postman.cgi」となってしまい変更方法がわかりません。今の件名に、固定の文字列を追加するだけでもいいのですが、可能でしょうか?
送信メールの件名が「Message from 設置URL/postman.cgi」となるのは、「name="_Subject"」の value が空の場合です。自動返信メールの件名については「daga/msg」フォルダ内の自動返信メール設定を確認してください。
ご回答ありがとうございます。
早速、<input type="hidden" name="_Subject" value="recieve.txt">のように設定をしてみたのですが、今度はメール件名が「recieve.txt」となってしましました。
試しにvalueを適当な文字に変更すると、その件名で且つrecieve.txtの内容でメールが届きます。recieve.txtというのはmsgフォルダに置いてあるだけで、なんの設定もしておりません。私の目的としては問題ないのですが、この動きで正常でしょうか?
たびたびすみません。。。recieve.txtの内容で届くというのは、私の勘違いでした。お騒がせしてすみません。
POSTMAN3利用させていただいております。
今後、もし、バージョンアップされるご予定がありましたら、画像認証を是非組み込んでいただけないでしょうか。
最近、一日、数件ほどですが、ジャンクメールが届くようになりまして、今後のことも考えると、ジャンクメールなどを拒否できるような機能がほしいなと考えております。
実際、ジャンクメールへの対応などを考えると、画像認証・・というイメージしかなく、今回、投稿させていただきました。
お忙しいところ、すみません。
よろしくお願いします。
ご質問ありがとうございます。今のところ画像認証を追加する予定はございません。
ちなみに、CMONOS.JP 付属のフォームメールCGI「アンケート」では、ダミーフィールドによってロボット書き込みを抑止します。人力などで書き込まれた場合も、禁止文字列を設定することでたいていのロボット書き込みを防止することができます。機会がありましたら CMONOS.JP の導入もご検討ください。
現状の POSTMAN でロボットを回避するには形式チェックが効果的です。たとえば、ふりがな欄でひらがなの入力を強制するとよいでしょう。もしくはひらがなを入力するだけのフィールドを用意します。
例)ひらがなのみを何文字か書いてください。<input type="text" name="check_H_" />
こうすると指示を理解できない海外のロボットはひらがなチェックにひっかかり書き込みができません。以上参考になりましたら幸いです。
素晴らしいシステムを無料で提供くださり
感謝しております。
一点質問させてください。
フォームに入力があった過去の情報は
POSTMANを設置しているサーバーのどこで
確認できるのでしょうか?
確認したところ、それらしき箇所が
見当たりませんでした。
デフォルトでは入力→送信後は、
情報が削除され、過去ログに残す場合は、
コードの改変が必要ということでしょうか?
お手数ですが、ご返信頂ける幸いです。
ご質問ありがとうございます。
はい、POSTMANではサーバに一時ファイルを作成することなく直接メールしますので、送信データの情報はサーバ上に残りません。
サーバの記録するアクセスログとは別に送信内容のログが必要な場合はスクリプトの改変が必要となります。
ちなみに、弊社の別のプロダクト「カスタムフィールドCMS CMONOS.JP」に含まれるフォームメールでは、サーバ上に送信データを保存し、後からCSV形式でダウンロードすることも可能です。機会がありましたら、CMONOS.JP の活用もご検討ください。
以上参考になりましたら幸いですm(_ _)m。
POSTMAN3を利用させていただいています。
送信先の振り分けについてお伺いします。
複数のアドレスに同時送信するのではなく、ラジオボタン等で選択したアドレスに送信することは可能でしょうか?
お忙しいとは存じますがご教示お願いいたします。
スクリプト冒頭の設定で「my $send_ok = 1;」とし、宛先指定ヘッダを許可したうえで、「<input type="radio" name="_To" value="sales@cmonos.com" /> 製品について・<input type="radio" name="_To" value="support@cmonos.com" /> サポートについて」のようにすると、選択肢によって送信先を変更できます。
ただ、上記の方法では悪意のあるHTMLを用意すれば、どこにでも送信できてしまいます。(リファラ(直前URL)チェック機能で、一般ユーザーが不正なアクセスに巻き込まれることはある程度防止できます。)
安全に宛先を振り分けるには、スクリプトを改変する必要があります。弊社ではスクリプトの改造も承っております。必要ありましたら、サポートお申し込みフォームよりお気軽にご相談ください。