**mail.inc.php [#a79ce27c] |RIGHT:100|LEFT:360|c |~サマリ|メールの送信フォーム| |~リビジョン|1.19| |~対応バージョン|1.3.6/1.4| |~投稿者|[[kaw]]| |~投稿日|&new{2004-03-05 (TUE) 10:08:15};| ***概要 [#l329829f] :| ~フォームにCc Subject 本文を記入して送信ボタンを押すと決まった宛先にメールを送ります。当然あると思って探したら意外にもないようなので自作。 ~利用方法としては、メールによる意見募集やアンケートなどを想定しています。 ~記入フォーム中のCc, Subject, 本文に関してはそれぞれ、 --使わない --値固定(フォーム記入者が変更不可) --値可変(通常のテキストフィールド) :| から選択することができます。テキストフィールドを使用する場合は、初期値を埋め込んでおくこともできます。 ~このプラグインは、無制限に設置・利用ができてしまうといたずらメール発生器になりかねないので、「凍結されたページからしか利用できない」という制限をかけてあります。 ***形式 [#f60e89ba] #mail(src,dest,cc,subject,body) src ... 発信メールアドレス dest ... 宛先メールアドレス cc ... Carbon Copy (省略可) subject . 表題 (省略可) body ... 本文 (省略可) cc, subject, bodyに関しては、先頭に文字 - + = !を置くことで、 フォームの表示方法を選択できる。 -foo : 値をfooに設定。(フォーム上は非表示) =foo : 値をfooに設定し、テキストとして表示(ユーザ変更不可) +foo : 入力フィールド内に初期値としてfooを表示(ユーザ変更可) @foo : +fooとおなじだが、内容を添付ファイルfooから インクルードする(本文でのみ有効) foo : 「=foo」と同じ 空文字列 : 「+」として解釈(空のフォームを表示)。 ! : そのフィールドは使用しない。 ***使用例 [#z27ce727] #mail(foo@bar.jp,bee@baz.jp,!,=Hogeについて,ここに本文を入れて) ・foo@bar.jpからbee@baz.jpへメールを送る。 ・ Cc:は使用しない ・ 表題は、「Hogeについて」で固定。変更不可 ・ 本文の入力フィールドには、「ここに本文を入れて」とあらかじめ 入力されている。 ***掲載先 [#u8f8f415] -[[置き場所:http://kaw.ath.cx/dl/pub/pukiwiki/mail.inc.php.txt]] ***コメント [#o5d8f8cf] -[[kaw]] &new{2004-03-02 (TUE) 23:01:24}; ~PukiWiki 1.3.6で作りましたが、1.4系列での動作の可否を教えていただくと助かります。 -[[reimy]] &new{2004-03-02 (TUE) 23:52:55}; ~PukiWiki 1.4で使用するためには、table関係のタグのbgcolor属性、align属性、valign属性などをスタイルシートに移すことや、inputタグなどで閉じタグを付加するなど、一部修正が必要ですね。 -[[kaw]] &new{2004-03-03 (WED) 00:56:02}; ~ん〜、inputって、閉じタグ要るんですか〜。古くてイイカゲンな知識しかないので‥。どうもスミマセン、直しときます‥。あと、それ以外は「大きくNGでこれじゃ全然動かん!」ってとこはないってことでいいでしょうか? --[[reimy]] &new{2004-03-03 (WED) 01:15:45}; ~inputタグの場合は<input 〜 />のようにタグの末尾に半角空白と/を記述すれば閉じタグになります。 <input type="hidden" name="%s" value="%s"> この場合 <input type="hidden" name="%s" value="%s" /> というように。 -[[reimy]] &new{2004-03-03 (WED) 01:16:38}; ~上記のタグの修正だけすれば、1.4でも問題なく動作しました(タグの修正しないとパースエラーが発生します)。 --[[kaw]] &new{2004-03-03 (WED) 04:05:49}; ~閉じタグの問題は修正済です。テーブル属性のスタイルシート対応はこれから手をつけます。 -[[kaw]] &new{2004-03-05 (FRI) 07:31:13}; ~スタイルシート対応を行いました。 -[[kaw]] &new{2004-03-20 (SAT) 08:18:54}; ~バグフィクス + 本文記入欄への添付ファイルからのインクルード機能を追加しました。 -[[case@通りすがり]] &new{2004-05-04 (TUE) 21:20:34}; ~http://fh.aaacafe.ne.jp/の無料サーバーでは動かなかったです。(pukiwiki1.4.2。phpはhttp://cgi.f22.aaacafe.ne.jp/~tblue/test.php ) --補足。「メールを送信しました。送られた内容は以下の(略」のページは表示されますが、待てどメールは来ないといった動作です。 -[[kaw]] &new{2004-05-16 (SUN) 11:19:26}; ~無料のホスティグサービスだと、PHPのスクリプトからのメール送信自体を制限しているかも‥。どのように動かなかったのでしょうか? -[[よっちい]] &new{2004-05-16 (SUN) 14:33:26}; ~私のところではMTAに対してmail pluginの引数で設定している''From:''になっておらず、httpdのownerになってしまう現象が観測されました。 --[[よっちい]] &new{2004-05-16 (SUN) 15:51:32}; ~間違ってました。enverope senderがhttpdのownerだったので、はじかれていました。適宜修正することで使えるようになりました。 -[[名無しさん]] &new{2004-05-16 (SUN) 20:24:24}; ~フォームからメールを送って下さった方に返信したい場合もあるかと思います。送信元アドレスも入力可能にするのはどうでしょう? --208行目 return('発信元が指定されていません。Mailプラグインの記述方法を確認して下さい。'); を $from ="通常表示させるアドレス";に書き換えます。 -- [[ねこご]] &new{2004-10-12 (火) 18:28:53}; --222行目の list($t, $v) 〜 と次の行の $retstr .= $v."\n";を削ります。 -- [[ねこご]] &new{2004-10-12 (火) 18:30:25}; --# Cc:から# Subject:の間にある6行をコピーして、先ほど削ったlist($t, $v) 〜(# From:の下)にペーストします。 -- [[ねこご]] &new{2004-10-12 (火) 18:31:36}; --ペーストした1行目の ($cc, 'cc', の部分を ($from, 'from', に書き換え、5行目のCc:をメールに書き換えます。 -- [[ねこご]] &new{2004-10-12 (火) 18:33:33}; --#mail(src,dest,cc,subject,body)のsrcには何も入れないようにするといかがでしょうか。 -- [[ねこご]] &new{2004-10-12 (火) 18:36:09}; -[[名無しさん]] &new{2004-05-20 (THU) 22:45:54}; ~dest のデフォルトは、$notify_to が良い気がしますけどね。ページ中に、アドレスを記入したくありませんから。 -送信先アドレス非表示にする方法はないんでしょうか? -- &new{2004-10-07 (木) 14:42:14}; --226行目 ("=$to", 'to') を ("-$to", 'to') にして、次の行を$retstr .= $v."\n"; にします。 -- [[ねこご]] &new{2004-10-12 (火) 18:18:00}; --合わせて、92行目あたりの.'<tr><td style="text-align: right">宛先:</td><td>'から."</td></tr>\n"までの3行を削ります。 -- [[ねこご]] &new{2004-10-12 (火) 18:19:18}; -送信元アドレスが入力可能で、送信先アドレスとCcを非表示になるように、自分用に改造したので、添付しておきます。送信後のデザインも少し変えてあります。 -- [[ねこご]] &new{2004-10-12 (火) 19:13:22}; -早速、新しいバージョンを使わせて頂きました。どうもありがとうございました。少し気が付いた点は、受信した本文が1行ずつ間があいています。 送信後の表示画面はそのようなことがありません。 -- [[sam]] &new{2004-10-12 (火) 23:16:22}; --本文に関するところはいじっていないのと、私の環境では再現できなかったので、すみません。分かりません。 -- [[ねこご]] &new{2004-10-13 (水) 00:47:36}; --以前、メールソフトに送受信したメールを自動的に改行する機能がついていて、それに気がつかず、右往左往したことがありますが、そういうことではないんですよね、きっと…… -- [[ねこご]] &new{2004-10-13 (水) 00:50:00}; -mail.inc.php2は送信前のccは表示する設定のままでしたので、その点を修正して、mail.inc.php3として、添付しました。合わせて、改造した箇所の説明を追加しました。 -- [[ねこご]] &new{2004-10-13 (水) 00:53:13}; -mail.inc.php3を使わせて頂きました。どうもありがとうございます。受信の際、1行ずつ開いてしまう件はそのままでした。PHP4.2.2+qmail v1.03+AL-Mail32 v1.13です。ファイルの前後にバイナリらしき記述がありましたので削除しました。バージョンもv 1.19 2004/03/19 15:24:32のままでしたので本日の日付とv1.20にしました。細かな話ばかりですみません。 -- [[sam]] &new{2004-10-13 (水) 03:55:06}; -ねこごさん、投稿ありがとうございます。ところで、ねこごさんの方法で宛先アドレスは、ブラウザ上は非表示になりますけど、HTMLのソースを表示させると簡単にわかっちゃいますね(それでもいいのかな?)。 あと、私の個人的な感覚なのですが、私がフォームを記入するとして、「自分の書いたものが宛先アドレスを知らされることなくメール送信される」ってのは何か釈然としないので、送信先アドレスの非表示機能は、あえて追加しませんでした。 -- [[kaw]] &new{2004-10-14 (木) 00:03:16}; -ソースまでは気がつきませんでした。あちこちいじってみたんですが、ソースから消すとメールが送られてこないので、これ以上は私には無理なようです。バイナリが混じったものまで添付してしまって恥ずかしい限りです&sad; 私も誰に送信されるか分からないメールフォームはあまり好きではありませんが、もらう側としてはスパムメールを防いだりアドレスを利用されるよりはいいかなと思っています。ソースに見える時点でスパムは防げないですが・・・・&worried; -- [[ねこご]] &new{2004-10-14 (木) 11:55:59}; -スパムのささやかな対抗策として、フォームメール用に転送専用のメールアドレスを作り、メインのアドレスで受信できるようにしました。 -- [[sam]] &new{2004-10-14 (木) 13:10:51}; -1.4.3環境で実行してみたのですが、FML経由で着信したメールが文字化けしてしまうようです。理由は分からないです。。 -- [[iwatec]] &new{2004-10-26 (火) 14:57:45}; -設置させて頂いてさっそくSPAM対策について考えてしまったんですが…プラグインでメールアドレスにあたる部分のみランダムにエンティティ化することで対策はできないですかね。具体的には下みたいな感じです。 -- [[白鴉]] &new{2004-10-31 (日) 11:48:40}; hoge@hogehoge.com ↓ランダムにエンティティ化すると hog%65%40hoge%68%6fge.com -[[これ>http://park12.wakwak.com/~webring/mailaddress.html#perl1]]…ぱっと検索してperlでの例しか見当たらなくてすみません><; -- [[白鴉]] &new{2004-10-31 (日) 11:56:38}; #comment