てことで、今回はメールフォーム作成プラグインのちょっとしたカスタマイズです。
と言っても、大したことができるわけでは有りませんが、やれることはやってみるってことで。
てか、いきなりココへ来てしまった方は意味不明ですよね?
その場合は、下記の当blog内関連記事の一番目をお読み下さい。
前の記事から飛んできて、今回の内容が詳しく気になる方は、続きをご覧下さい。
#当blog内関連記事
メールフォーム作成プラグイン(その1):投稿画面用テンプレート
メールフォーム作成プラグイン(その2):確認画面用テンプレート
メールフォーム作成プラグイン(その3):投稿完了用テンプレート
メールフォーム作成プラグイン(その4):送信データ用テンプレート
メールフォーム作成プラグイン(その5):エラー画面用テンプレート
てことで、毎度のことながら壱さんのサイト紹介を。
今回は俺自身によるカスタマイズなので、直接は紹介記事と関係しませんが、一応。(^^
#from The blog of H.Fujimoto
メールフォーム作成用プラグイン(汎用フォーム対応/MT3.3対応・その1)
メールフォーム作成用プラグイン(汎用フォーム対応/MT3.3対応・その2)
メールフォーム作成用プラグイン(汎用フォーム対応/MT3.3対応・その3)
メールフォーム作成用プラグイン(汎用フォーム対応/MT3.3対応・その4)
▼メールアドレスを必須にしないようにしよう!
今回作成したフォームは、メールアドレスが必須になっています。
しかし、どこの誰とも知らないヤツにメールアドレスを教えてくれる方は少ないです。
また、毎回適当なメールアドレスを入力するのも面倒ですよね?
てことで、プラグイン自体をちょっと改造してみましょう。
壱さんのプラグインを解凍したらファイル二個とフォルダ一個が有り、フォルダ内に、『MailForm.pm』が有ります。
このファイルをメモ帳などで開きます。できれば、行数表示できるエディタが良いですね。
77行めに『メールアドレスを入力してください。』と有りますので、この辺りが必須入力の設定です。
この部分を下記のように書き換えます。
75 #if (!$email) {
76 # $iserror = 1;
77 # push @errmsg, 'メールアドレスを入力してください。';
78 #}
上記の部分をコメントアウト(#を付ける)すると、メールアドレスの必須入力がハズれます。
おぉ、これで大丈夫だと思っていたのですが、実は罠でした。(笑
プラグインの仕様上、メールアドレス未入力だと動作しないようなのです!
要するに、このままだと誰が送っても届かないと言う事態に陥ります。
てか、俺はしばらくそれに気付かずに大変な目に遭いましたから。(;´Д`)
正直悩みましたが、ある部分に注目することによって、解決することができました。
まずは18行目を見て、それから73行目辺りを見て下さいな。
18 use constant MAIL_DEFAULT_SUBJECT => '(無題)';
~中略~
72 if (!$subject) {
73 $subject = MAIL_DEFAULT_SUBJECT;
74 }
この部分は、件名が無かったら『(無題)』をセットしてメールを送るという意味です。
もしかして、これをメールアドレスにそのまま利用すると・・・ウマく行きそうですよね?
てことで、これを元にして先ほどのメールアドレス辺りを改造してみました。(青字が追加部分になります。)
18 use constant MAIL_DEFAULT_SUBJECT => '件名は砕け散った!';
19 use constant MAIL_DEFAULT_ADDRESS => 'dummy@mail.address.com';
~中略~
76 if (!$email) {
76 # $iserror = 1;
77 # push @errmsg, 'メールアドレスを入力してください。';
78 $email = MAIL_DEFAULT_ADDRESS;
79 }
これで、メールアドレスが未入力の場合には、自動的にダミーアドレスが入ってくるようになります。
この状態で投稿画面用テンプレートに書いてある、メールアドレスの部分の必須をハズしておきましょう。
まぁ、俺の場合は投稿画面用テンプレートから投稿ボタンもハズしましたけどね。(^^
だって、せっかく件名とか遊んだ(上記ソース参照)のに、見て貰えないのじゃ面白くないですしね。
強制的に確認画面に送れば、件名が空欄の場合にネタ発動するような仕組みです。(爆
これにて、壱さんのプラグインによるメールフォーム作成と、プラグインのカスタマイズを終了します。
なお、下にも有りますが、特定プロバイダではsendmailが送れない現象が有ります。
メールが届かない場合は、その点も考慮する必要が有るので、気をつけて下さいな。
注2:sendmail自体を利用できないプロバイダが有るらしい。
詳しくは、当blogのメールフォームまで。
≪ 続きを隠す