ZeroMail

コメント用に残してあります。
設置解説は新しいドキュメントをご覧ください。

現在サポートはしておりません。
重篤な問題に関しては直せる保障がありませんので、
他のスクリプトをご検討頂いた方が解決が早いかもしれません。

コメントする前にお読み下さい

「エラーが出ました。どうしたらいいですか?」という知恵袋風の質問はやめてください 🙁

不具合と思われる動作については、サーバーのエラーログをメールで送っていただければ、解決が早くなる可能性が高まります。
手に入らない場合は以下について出来るだけ具体的に明記してください。

  • 設置して問題が発生したサーバーの仕様(php.ini、レンタルサーバー名等)
  • 受信に使用したメールクライアント
  • エラーが発生するまでの手順
  • 表示されたエラー(番号・内容)や状態

「ZeroMail」への240件のフィードバック

  1. お忙しいところ大変失礼します。超初心者からの質問です。このZeromailがとても気に入ってしまい,サーバーにダウンロードしました。
    しかし,http://www.~/zeromail/zeromail.php とアクセスするとなぜかcheck.phpにいってしまいます。どこか書き換えないといけないのでしょうか。教えていただければ幸いです。よろしくお願いいたします。

    返信
  2. Sakuraさん>

    zeromail.phpに直接アクセスするとcheck.phpに飛んでしまうのは1.3のバグです。
    お手数ですが新しいバージョン1.4をご利用ください。

    zipファイルをダウンロードして解凍するとcontact.htmlというファイルがありますが、
    これがお問い合わせフォームのアクセス先です。
    zeromail.phpにはフォームを出力する機能はなく、formタグのaction属性で指定するのが主な利用方法となります。
    設定ページをご覧ください。
    http://zeromail.webtecnote.com/setting.php

    返信
  3. 迅速な対応に感謝です。1.4をアップロードしテストしたところ動きました。ありがとうございました。

    返信
  4. 初めまして
    こちらのメールを設定していて、「送信された値のチェック」のチェック部分、「ひらがな」または「カタカナ」のチェックで、入力時にスペースを使われたらはじかれてしまいます
    phpは詳しくないので、、試行錯誤して、

    $value = str_replace( ‘ ’, ”, $value );
    $value = str_replace( ‘ ‘, ”, $value );

    を追加して無理やりスペースを削除して動かしてみました

    また、なぜかフリガナで、「ダ」一文字をはじいてしまうので、

    preg_match(“/^[ぁ-ゞァ-ヾ]+$/u”, $value)

    と、書き換えました

    よくわからないまま変更したのですが、何かスマートな記述方法があるでしょうか?

    Ajax利用なし、Windows、IE6~8、Firefox3で、文字コードutf8で使用しています

    返信
  5. nyamu さん>
    ご指摘ありがとうございます。PCRE_UTF8修飾子の存在を忘れておりました…
    正規表現の条件がスペースを含まないものになっているので、スペースがある場合は弾かれます。
    確かにふりがなの利用だとスペースで区切る事が多いので、スペースの入力は許可しておいた方がよさそうですね。
    preg_match(”/^[ぁ-ゞァ-ヾ\s]+$/u”, $value)

    返信
  6. 早速のお返事をありがとうございます!

    しかしながら、記述いただいたコードでも、フリガナのスペースがはねられてしまいます…
    正規表現はとっても苦手なのですが、自分なりに変更してみようとしてみた時も、[ぁ-ゞァ-ヾ\s] の、 \s が、どうもきかない(?)ようなのです…

    (今回記述いただけたコードの全角はもちろん半角に変換しています)

    と、言いつつ、phpは初心者なので、何かミスをおかしているのかもしれませんが…

    返信
  7. nyamuさん>

    日本語はさすがに一筋縄ではいきませんね…
    もうダイレクトに\sを全角スペースと半角スペース1つずつにしてしまえばマッチするのではないかと思います。
    preg_match(”/^[ぁ-ゞァ-ヾ  ]+$/u”, $value)

    返信
  8. 何度もお返事をありがとうございます!!

    スペースとおりました!

    コロンブスの卵的発想、全く思いつきませんでした

    ありがとうございます!!

    返信
  9. はじめまして。
    ローカルでテストしていまして、最低限の受け取りメールアドレスのみ変更し、メール、名前、内容のみ記入して、送信するとzeromail.phpの中身が途中からすべて表示されるような状態になってしまいます。

    他に動作するか確かめる為の最低限の設定などはありますでしょうか?

    返信
  10. monmoさん>
    PHPでソースが出るというのはPHPが動作していない状況に多く見られる現象です。
    file:///から始まるアドレスのcontent.htmlから送信ボタンを押したりしていませんか?

    返信
  11. Tenderfeelさん>

    返信有難うございます。
    まさにその通りでした^^;
    いつの間にかアドレスが変わってるのに気づきませんでした。
    お騒がせしまして申し訳ないです。

    返信
  12. はじめまして。

    「init.php」内に記述する受け取りの件名に、「○○さんよりアンケートの回答がきております。」のように、
    タグなどで「差出人名+固定文字列」というようにすることはできますでしょうか?

    よろしくお願いいたします。

    返信
  13. Mayan さん>

    今の所そういう機能はないので、zeromail.phpの修正が必要です。

    init.phpの設定(MAILSUBJECT)を「さんよりアンケートの回答がきております。」として、
    zeromail.phpの486行目と523行目付近にあるMAILSUBJECTを次のソースに書き換える。

    $name.MAILSUBJECT

    ※フォームのnameエリアが空の場合はZeroMailさんより~になります。

    件名の置換はあると便利そうなので次のバージョンアップ時に対応しようと思います。

    返信
  14. 前回質問させていただいた際は、本当にありがとうございました

    ところで今回は、気がついたことと、わからないことについて書き込みさせていただきました

    気がついたことは、必須項目をチェックさせる

    //必須
    if( mb_ereg(“req”,$key) && mb_strlen($value) < 1){
    $formitem[$name[0]]=convert_encode(‘この項目は必須入力です。‘);
    $error++;
    }

    の記述位置なのですが、

           }//end:foreach

    の直前に持ってこないと、反応しないことがあるかな?と
    いかがなものでしょうか?

    わからないことは、以下です
       ●添付ファイルの必須方法
       ●radioボタンの必須方法

    もしよろしければ教えていただけませんでしょうか?
    現在試行錯誤しているのですが、なかなか解決しないでいます(本当にphpわからないんです…)

    返信
  15. nyamu さん>

    添付ファイルとラジオボタンを必須にする場合はhiddenフィールドを使ってみてください。

    <input type="hidden" name="require" value="name値,name値" />

    name_reqという指定方法はテキストエリア、テキストフィールド、セレクトメニューなど、
    未入力の場合に空の値がPOST送信されるものに対して有効となっております。

    返信
  16. 何度も申し訳ありません

    添付ファイルとラジオボタンの必須方法なのですが、

    を使用した場合、きちんと値を入れていても、確認画面でエラーになるのです…
    わたしの質問の仕方が悪く、お忙しいところを本当に申し訳ありません

    返信
  17. nyamu さん>

    確認画面のエラーというのはチェックしてあるのに「必須入力です」が出るということでしょうか?
    こちらで再現が出来ないのでメールでソースファイルを送って頂ければ何か分かるかもしれません。

    返信
  18. ありがとうございます
    ずうずうしくソースファイルを添付したメールを、メールフォームより送らせていただきました

    こちらはphp4を使用しています

    返信
  19. 一応こっちにも書いておきます。

    nyamu さん>
    バージョン1.3にはrequireでの必須入力指定にバグがあるので、1.4を使ってみてください。

    返信
  20. 1.4で解決しました!!

    いろいろ試行錯誤している間に1.4にバージョンアップしていたことに全く気づかず…確認不足でした
    ごめんなさい

    ありがとうございます!!

    返信
  21. はじめまして、素晴らしいフォームを開発していただきまして
    ありがとうございます!ZeroMailではメールアドレスの2重チェックを
    行うことはできますでしょうか?
    もし方法がございましたら教えていただけませんでしょうか?
    お忙しいとは思いますが、よろしくお願い致します。

    返信
  22. かぼちゃ さん>

    同じメアド2回入力させるやつですよね。残念ながら内部機能としては実装していません。
    理由は私があのチェックをあまり好きではないからです(笑)

    簡単なチェックであればJavaScriptで実装することができます。
    PHPだと本体ソースの修正が必要になるので次のバージョンに含めてしまってもいいかなと思います。
    (バージョンアップのリリースには時間がかかるので、とりあえずの応急処置になりますが)
    どちらがよろしいですか?

    返信
  23. またまた質問です。フォームを変えるためのfull_tableのフォルダのhtmlはわかるのですが,input.phpのファイルはzeromailのフォルダにただ入れるだけでいいのですか?
    教えていただければ幸いです。

    返信
  24. もう一つ書き忘れました。一太郎のファイルは添付できないのですか?できるとすれば,どのへんを変更すればよいのですか?

    返信
  25. SAKURA さん>
    input.phpには、フォームのname値と確認画面などで表示するラベルを設定する部分だけ書いてあります。
    同じ設定のソースがinit.phpにありますので、input.phpの中身をコピペしてinit.phpの設定部分を上書きしてください。
    バージョン1.4だと220行目~233行目部分になります。

    zeromail.php(v1.4)の665行目にあるcheck_minetypeという関数の、
    $minetypeという変数と$extという変数にそれぞれMIMEタイプと拡張子を追加することで
    設定されていないファイルの添付ができます。

    MIMEタイプ一覧(http://www.geocities.co.jp/Hollywood/9752/mime.html)によると
    一太郎のMIMEタイプはapplication/jxw と application/x-js-taro で、拡張子は.jxwらしいので
    それぞれ上記変数の配列に追加してみてください。

    返信
  26. ありがとうございます。早速やってみます。お忙しいところありがとうございました。とても助かりました。

    返信
  27. >Tenderfeelさん

    お返事ありがとうございます。
    実は僕も2回アドレス入れるのは好きではないです笑
    JavaScriptで実装するとすればアラートなどで表示される
    タイプのものでしょうか?
    できればZeroMailのエラー表示と同じようにチェックできれば
    ありがたいので時期バージョンで是非実装していただきたいです。

    返信
  28. かぼちゃ さん>

    JavaScriptで実装するならバリデーターでよくある
    テキストエリアの下などにメッセージを表示するものが妥当だと思います。
    アラートはOK押す手間があるし、強制的に入力作業を中断されてしまうし
    何より今時アラートは無いだろと思うので個人的に避けたいなと(笑)
    PHPならzeromail.phpに組み込むより他無いので、実装方法など検討したいと思います。

    返信
  29. >Tenderfeelさん

    お返事ありがとうございます。
    >テキストエリアの下などにメッセージを表示するものが妥当だと思います。
    こちらの実装は簡単に行えるでしょうか?ZeroMailで是非実装したいです。

    もうひとつ質問なのですが、エラーが発生しました送信データがありません。と
    表示される画面の表示形式は変更できないのでしょうか?
    check.phpを見てもどこにエラー画面時のhtmlがあるかわかりませんでした。
    ご回答お待ちしております。よろしくお願い致します。

    返信
  30. かぼちゃ さん>

    >こちらの実装は簡単に行えるでしょうか?ZeroMailで是非実装したいです。
    MooToolsとかjQueryなどのフレームワークを使っているなら簡単ですが、そうでなければ割と面倒くさいです。

    エラーページのデザインはerror.phpの中身を変更すると変わります。
    http://zeromail.webtecnote.com/template.php#error

    返信
  31. こんにちは

    いつもZeroMailを利用させていただいております。

    さっそくなのですがZeroMAILを利用した際、
    複数のメールアドレスにメールを送信したい場合は
    define(‘MAILTO’,’xxx@xxx.xx.xx’,’xxx@xxx.xx.xx’);で可能でしょうか?
    試したところうまく送信ができなくて。

    初歩的な質問かもしれないので大変恐縮なのですが、
    なにとぞご教授をお願いいたします。

    返信
  32. AL さん>

    複数送信先を指定するのであれば単純にカンマで区切ってください。
    define(’MAILTO’,’xxx@xxx.xx.xx,xxx@xxx.xx.xx’);
    init.phpにあるBCC(ブラインドカーボンコピー)にメイン以外のアドレスを入れると、
    送信先が複数あるということを隠すことが出来ます。

    返信
  33. 素晴らしいソフトのご提供に感謝いたします。
    バージョン1.4.0を使わせていただいておりますが、1つご教示ください。
    自動返信を行う設定にしているのですが、自動返信したメールの本文の先頭に

    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-2022-JP
    Content-Transfer-Encoding: 7bit

    が入ってしまいます。

    これを取り除くにはどうすればよろしいでしょうか。
    宜しくお願いいたします。

    返信
  34. ヒロ さん>

    ソースが表示されたメールソフトの名前とバージョンを教えてください。

    返信
  35. 早速にお返事を頂いておりながら、こちらからの返信が遅くなり失礼しました。
    メールソフトは、Windowsメール バージョン6.0です。
    お手数をお掛けいたします。どうぞ宜しくお願いいたします。

    返信
  36. ヒロさん>

    Vistaが自宅にしかない上にwindowsメールを使ったことがないため
    ちょっと時間がかかるかもしれません。
    多分バージョンアップを伴うと思うので気長にお待ちください。

    返信
  37. ヒロさん>
    Windowsメール バージョン6.0.6000.16386 でテストしてみましたが再現出来ませんでした。
    自動返信の時のメールヘッダーはFrom、BCC、X-Mailerのみ処理をして、他はmb_send_mail任せという事を考えると
    設置しているサーバーかメールサーバー、もしくはセキュリティソフトの影響を受けているのかもしれません。
    メールにフィルターを掛けているツールを確かめてみてください。

    返信
  38. 素晴らしいソフトですね。
    活用中です。

    メール自動返信で
    inputで取得した変数を挿入したいのですが、
    可能でしょうか?

    {name}様

    お問合せありがとうございます。
    という風に変数を活用したいです。
    よろしくお願いいたします。

    返信
  39. もじもじ さん>
    1.4.5で管理者向けにタイトルの置換は実装してますが、本文にタグで挿入する機能はないです。
    例文はinitで設定するヘッダーテキストですよね?
    まだ1.4.5の本公開はしていないのでついでに対応してみようと思います。

    返信
  40. お疲れ様です!勝手にいつもお世話になっております。
    すばらしいフォームありがとうございます!

    一つご質問なのですが、ZeroMailは確認画面を飛ばしたり、送信確認画面を飛ばして送信完了させる事はできませんでしょうか~?

    返信
  41. ゆうた さん >

    確認画面のスキップは(Ajaxを使わない)通常送信だと出来ません。
    送信完了画面は設定でcompletion.htmlをトップページとかに変更すればナシに出来ます。

    返信
  42. お疲れ様です!
    ゆうたです!
    ありがとうございます、やはりAjax版を利用させていただきたく思います!!
    やはり良い動きですね、僕も作れたなぁとおもったり。

    で、Ajax版なのですが、必須項目に文字を入れない場合、
    「この項目は必須入力です。」とでますが、この文をすこし変えたいのです~
    zeromail.phpの105行目、130行目、192行目を変えても変わらないようなのですが、
    どこを変えればよいのでしょうか…

    返信
  43. ゆうた さん >

    Ajax版のエラーはzeromail-formpack.jsに含まれている
    Form.Validator & Date messages in Japanese と addAllThese-jp.jsプラグイン内で設定されています。
    配布しているものは圧縮してあるので、未圧縮ソースを下記から取得してメッセージを変更した上で入れ替えてみてください。

    Form.Validator & Date messages in Japanese : http://github.com/holyshared/mootools-more
    addAllThese-jp.js : http://tenderfeel.xsrv.jp/mootools/768/

    入れ替えについての注意※
    addAllThese-jpは私が書いたソースなのでいいのですが、Form.Validator & Date messages in Japaneseについては借り物なのでライセンスコメントは消さないでください。

    返信
  44. たびたびお応え頂きありがとうございます!
    一点だけ教えて頂きたいのですが、
    教えて頂いたサイトから配布ソースは入手しましたが、
    未圧縮ソースを、zeromail-formpack.jsに入れ込む?入れ替える為には
    どうすればよいのでしょうか?

    あまりの知識不足で恐縮です。
    あちこちで探したり調べやってみたりしたのですが、
    どうもうまくゆかず…。

    JavaScriptを勉強する良い機会と考えています。
    しかしプログラムって面白いですね…

    返信
  45. ようやく意味がわかり、無事変えることができました!
    MooToolsって細かくファイルに分かれているのですね…
    ほぼ全ファイルを調べる事になりましたが勉強になりました。
    このZeroMailが多くの人に使われるといいですよね~、リッチなメールフォームは沢山あるようですが、使いやすいです!

    「仕様に沿ったJavaScriptファイルさえ用意すれば多分jQueryやprototypeでも動くんじゃないかと思います。」
    とのことだったので、有名なjQueryを入れてみましたが、ちょっと確認が…。たびたびすません…

    フォームを設置したファイルのソースにjQueryのSCRIPTと、すぐ下にプラグインのSCRIPTを記述したところ、check.phpのURLが見えた状態で真っ白な画面になって止まってしまいました。フォームからのメールは送信できませんでした。ちなみに、ソースにjQueryのSCRIPTを掲載し、プラグインを記述しない状態でも上と同じような症状になりました。

    一応jQueryは公式サイトから最新の1.4.4をダウンロードして入れましたが、1.3.2も入手できたため為しましたが、同じ症状で、check.phpの画面で止まってしまいました。
    これはどう理解すべきでしょうか?

    SCRIPTの記述は、上から、
    mootools-1.2.4-core.js
    mootools-formpack.js
    zeromail-ajax.js
    ~オリジナル

    としました。
    ちなみにDOCTYPEは1.0Transitional//ENです。

    返信
  46. ゆうた さん >
    MooToolsは必要最低限の機能がCoreとして配布され、その他の拡張機能はMoreとして配布されています。
    Moreの立ち位置は「MooToolsを作った人が作ったプラグイン」で、jQueryでいうところのPluginやUIみたいなものです。
    配布しているmootools-formpack.jsはMoreのバリデーターが含まれており、
    動作の核となるzeromail-ajax.jsでリクエスト送信などを行っています。

    「仕様に沿ったJavaScriptファイルさえ用意すれば多分jQueryやprototypeでも動くんじゃないかと思います。」

    この仕様というのは、
    ●リクエスト送信時にnoscript=falseを加える
    ●onsubmitを抑制する
    主にこの2つです。
    ZeroMailはnoscript=falseの送信が無いとAjaxモードで動かないので、他者作成のプラグインを利用するのであれば自分で追加する必要があります。
    また、Ajaxモードではconfim=trueをリクエストに加えると、ページ遷移無しで確認を表示することが出来ます。

    漠然とした答えになってしまいましたが、Ajaxモードの仕様は意外と単純なものです。
    使っているプラグインを教えて頂ければ対応の仕方を具体的に出せると思います。

    返信
  47. お疲れ様です!
    お返事ありがとうございます!

    なぁるほど…
    構造を知ると、ふむふむ、と思えてなんかつかめそうになりますね!
    (とはいえ、まだまだ勉強しないといけない感じです)

    jQueryに用いたのは、
    Input Limiter 1.2.1というプラグインで、textareaの文字量の制限を行えるものです。
    ちょっとjQueryまで手を出すのは早かったかも…なんて

    返信
  48. ゆうた さん >

    装飾に関するプラグインだけ使っているなら送信に関する部分は別途必要になります。

    例えばこちらのプラグインとか
    jQuery Form Plugin : http://jquery.malsup.com/form/

    自作するならjQuery.post()かな?
    http://api.jquery.com/jQuery.post/

    jQueryに関してはドキュメントの量がMooToolsよりも多いので、自作するのも然程難しくはないんじゃないかと思います。
    なおファイル添付機能に関しては通常送信しか対応していませんのでAjaxでは使えません。

    返信

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください