コメント用に残してあります。
設置解説は新しいドキュメントをご覧ください。
現在サポートはしておりません。
重篤な問題に関しては直せる保障がありませんので、
他のスクリプトをご検討頂いた方が解決が早いかもしれません。
コメントする前にお読み下さい
「エラーが出ました。どうしたらいいですか?」という知恵袋風の質問はやめてください
不具合と思われる動作については、サーバーのエラーログをメールで送っていただければ、解決が早くなる可能性が高まります。
手に入らない場合は以下について出来るだけ具体的に明記してください。
- 設置して問題が発生したサーバーの仕様(php.ini、レンタルサーバー名等)
- 受信に使用したメールクライアント
- エラーが発生するまでの手順
- 表示されたエラー(番号・内容)や状態
こんにちは。
Zeromailありがたく使わせていただこうと思っています。
ところでzeromail.phpの51行目の行末に;が抜けていました。ご報告まで。
ろんろんさん>
うわわー本当ですね、教えてくださってありがとうございます。
ZeroMailとても使いやすいです。
使用していて気がついたので報告しておきます。
completion.html
init.php
check.php
にが抜けているみたいです。
すいません。codeタグを忘れてしまったので、変な文章になってしまいました。
が抜けているみたいです。
codeタグ使えないですね。
度々、すいません。
headタグが閉じられていないようです。
チョッパーさん>
お・・・おおおおおお・・・・これはひどい
突っ込みありがとうございます つД`)
ZeroMail気に入りました。
チェックボックスを設置しメールで受信した場合、
チェックボックス1
チェックボックス2
チェックボックス3
の様に改行されますが、改行でなく「区切り記号」で、
チェックボックス1 チェックボックス2 チェックボックス3
の様に改造するには何処を直せば良いのでしょうか?
ご利用ありがとうございます。
zeromail.phpの183行目付近にPOSTされた配列を処理している下記ソースがあります
if(is_array($value)){
$value=implode("\n", $value);
}
この”\n”を変更すれば改行から別の文字列に変えることが出来ます。お試しください。
早速のご返事ありがとうございます。
”\n”を変更して、改行から別任意の文字列に変更できました。
(183行ではなく163行でした)
まず、素晴らしいソフトを開発、公開して下さったこと感謝します。
たくさん調べましたが、最高です。
ひとつ質問ですが、SSLの使用は可能でしょうか?
サーバに共有SSLのサービスがあり、それを使おうとしてるのですが、うまくいきません。
原因がわからず困り果てております。
お手数をお掛け致しますが、よろしくお願い致します。
はげぞうさん>
共有SSLはhttps外からのファイル読み込みを禁止にしている場合があるので、
使用するファイルを同https以下に設置すれば動かす事は出来ると思います。
ただし暗号化されるのはフォームに書き込んだ内容を送信する部分だけで
スクリプトから送信されるメール自体は対応してないので暗号化されません。
また、スクリプトからのメール送信をSSL化しても、受信にSSL使ってないとあんまり意味がないです。
お返事ありがとうございます。
アドバイス通り試したところ、ようやくうまく行きました。
おかげ様で公開にこぎつけました。
ありがとうございました。
zeromail愛用させていただいてます。ありがとうございます。
先日メーラーをThunderbirdに乗り換えたのですが
Thunderbirdでメールを受け取ると、
zeromailから受けとったメールのヘッダが本文の方まで出てきてしまいます。
こちらを修正する方法はありますでしょうか?
ゆつな さん>
もし設置前にzeromail.phpのソースを変更したのなら、記述ミスの可能性があります。
Thunderbardだけがおかしくなるのであれば、ソフト側に原因があると思えますが
情報が少なすぎてなんとも言えません……。
どうしても解決しなければ設置したものをzipで再圧縮して送ってください。
はじめまして、検索によりこちらのサイトに巡り会うことができました
ZeroMail v1.2を是非ダウンロードさせて頂きたいのですが
404となっています。
本体の方は配布終了でしょうか?
やす さん>
すみません、ファイルのURLを間違えてました。絶賛配布中なので再クリックしてみてください
はじめまして。
便利に使わせて頂いております。
v1.2 ですが、
とした時に、必須チェックはされるのですが、実際には送信できてしまいます。
zeromail.php の116行目でチェックされた際に、 $error++; が必要かと思います。
if(! array_key_exists($reqname, $POST)) {
$formitem[$reqname]=convert_encode('この項目は必須入力です。');
$error++;
}
こんな感じでしょうか。
バグレポートでした。確認して修正頂ければと思います。
やた さん>
ご指摘ありがとうございます。早速修正致しました。
お世話になります。
お名前.comの共用サーバーで使用しているのですが
控えのメールだけ送信がされません。
init.php内の
//自動返信
//trueにした場合はフォームでのチェックの有無関係なく返信する
//下記設定に関係なくメールアドレスが必須入力になる
define(‘REPLY’,true);
この部分をtrueにしてもfalseにしても同様でした。
お名前.comのヘルプにて
【PHP】
○概要
◦エンコードを行う
◦接続情報作成
◦mb_send_mailを使用
=== サンプルここから ===
SmtpMail.Send(mm)
=== サンプルここまで ===
と記述があるのですが、特定サーバーでは別途
ini_set(“SMTP”, “SMTPサーバ名”);
ini_set(“sendmail_from”, $from);
などが必要になるのでしょうか?
すみませんヘルプの部分が切れてしまいました。
【PHP】
○概要
◦エンコードを行う
◦接続情報作成
◦mb_send_mailを使用
=== サンプルここから ===
SmtpMail.Send(mm)
=== サンプルここまで ===
Takuzou さん>
どうもお名前.comではmb_send_mailを利用する場合に下記iniの追加が必要みたいですね。
zeromail.phpの先頭あたりに入れてみてください。
ini_set("SMTP", "SMTPサーバ名");
ini_set("sendmail_from", $from);
お忙しい中での返答ありがとうございました。
はじめまして。メールフォーム使わせて頂きます!
高機能でありがたいです。
設置に関して質問なのですが、添付ファイルをつけたときに送信者のメールアドレスにドメインのような情報が追記されて、
自動返信が動作しないのですが、なにか必要な設定があるのでしょうか?
添付ファイルをつけないと自動返信は動作しました。
サーバ環境にもよるところがあるのでしょうか・・・
質問させて頂いた者です。返信先のメールアドレスの渡し方を調整してなんとか解決できました!
お騒がせしました・・・。
zeki さん>
なんだかバグっぽいですね…。もし差し支えなければ調整した部分のソースを書き込んで頂けると助かります。
はじめまして。
添付ファイル機能付のものを探してたどり着きました。
sakuraのサーバー(スタンダードプラン)を利用しているのですが、
「フォームメール確認」の「この内容で送信」を押すと、
「Internal Server Error」
が出てしまいます。
また、フォームデータを受け取ることは出来るのですが、
自動返信メールは機能していないようです。
※添付ファイルのあり、なしは関係ないようです。
何か、特別な設定が必要でしょうか?
sakuraで機能しないようでしたら、別のサーバーを借りようと思っていますので、
その際、ご推薦のレンタルサーバーなどございましたら、
教えていただけましたら幸いです。
mikiさん>
色々とバグがありましたので、修正版UPまでお待ち下さい。
mikiさん>
ver1.3で修正されていると思います。お試し下さい。
はじめまして。ファイル添付ができるUTF-8対応のメールフォームを探してたどりつきました。
とはいえ、残念ながらうまく稼動しません。できましたら、その原因等を教えて頂ければと思います。
症状としては、
①テンプレート等なにもいじらずに、必須項目である名前、メールアドレス、お問い合わせ内容だけを入力して
、確認画面へ画面遷移をすると、ご連絡方法以下の項目にPHPのNoticeエラーが出る(これは項目に入力をするか、php.iniで表示をやめるように設定すれば問題ないのですが)。/confim.phpの19行目にとりあえず問題があるらしい。keyに問題?
②送信すると、自動返信メールが届かず、届いた自分宛メールに、項目名等は表示されるが、入力した内容が記載されていない。
正直、私のスキルではお手上げ状態です。おそらくは、サーバーの問題なのでしょうが、サーバーがお名前.comのVPSなので、Takuzouへのアドバイス通り、ini_set(“SMTP”, “SMTPサーバ名”);とini_set(“sendmail_from”, $from);をzeromail.phpの先頭に入れたのですが、解決できませんでした。何かこころあたりがありましたら、是非ともご教授下さい。
yoshi さん >
VPSなら共用と設定が異なっている可能性もありますよね…。
Noticeはエラー表示のレベルを変更するか、エラーそのものを非表示にするかでとりあえず解決できますが、
全文を見てみたいので、お手数ですがメールでNoticeエラーの全文を送って頂けないでしょうか。
アドレスは tenderfeel@gmail.com です。
ついでに、設置サーバのphp.infoのスクリーンショット(または保存html)をつけて頂けると助かります。
宜しくお願いします。
Tenderfeelさん
お騒がせしました。不具合修正できました。
どうやら、php.iniの設定に問題があったようです。
session.gc_diviser=1000→100に
session.referer_check=”URL”→空に
session.entropy_lengthとsession.entropy_fileが二つづつ作ってしまっていたので、
一つにして、さらに頭に;をつけて非稼動に
したところ、
自動返信メールも届き、内容も掲載されるようになりました。
これからも、貴サイトのさらなるご発展に期待しております。
お心遣い頂きまして、ありがとうございました。
yoshi
たびたび、すみません。
追加質問なのですが、ZeroMailで、予約されているname値として、messageで文字総数を決められるようになっているとあるのですが、zeromail.phpにはそうしたソースが見当たりません。タグに何か入れ込むとできるようになるのでしょうか。教えて下さい。
yoshi
yoshi さん >
解決したようで何よりです。
総文字数は説明のミスでリンク総数の間違いでした。
必要であれば追加することは出来ます。
266行目 本文禁止語句チェックの下(276と277行の間くらい)に追加
早速のご返答ありがとうございました。
また、質問することがあるかもしれませんので、今後ともよろしくお願いします。
yoshi
はじまして。お世話になります。
ZeroMail ver1.3
フォームで
と入れると
確認画面ですべての項目が正しく入力済みに関わらず、
「前のページに戻り、入力エラーを修正してください。」
のエラーがでます。
フォームの記述がおかしいのでしょうか?
———————————————————————
性別
男
女
——————————————————————————–
よろしくお願いいたします。
失礼いたしました。コード設定を忘れておりました。
ZeroMail ver1.3
フォームで
<input type="hidden" name="require" value="sex" />
と入れると
確認画面ですべての項目が正しく入力済みに関わらず、
「前のページに戻り、入力エラーを修正してください。」
のエラーがでます。
フォームの記述がおかしいのでしょうか?
<tr>
<th scope="row"><label for="sex">性別</label></th>
<td>
<label>
<input class="radio" name="sex" type="radio" value="男" tabindex="5" />男</label>
<label>
<input class="radio" name="sex" type="radio" value="女" tabindex="5" />女</label>
</td>
</tr>
よろしくお願いいたします。
Kumao さん >
バグでしたのでソースの修正が必要です。
メールで詳しく書きましたのでご確認ください。
早々のご対応ありがとうございます。
感謝いたします。
ZeroMailは本当にかゆいところに手が届くツールですね。
今までも色々捜して、試して見ていましたが、どれも帯に短したすきに長しで、
私の理想とする物がありませんでした。
でも、このZeroMailはほしいと思う機能がすべて揃っております。
はじめまして。
確認画面について質問なのですが、
Ajax利用のエラーチェックの後、そのまま送信ではなく、
エラーチェック→確認画面→完了画面とすることは可能でしょうか?
確認画面利用バージョンだと戻って修正するのが面倒だし、
かといって、Ajax利用だとすぐ送信というのが不安に感じる
というのが理由です。
どうぞ宜しくお願いします。
YUI さん>
メールフォームにJavaScriptの入力チェックだけ仕込めば画面遷移させられますよ。
入力チェックはJavaScirptとZeroMailの設定を同じにしてください。
>Ajax利用だとすぐ送信というのが不安に感じるというのが理由です。
Ajaxによる送信でも、フォームの内容をzeromai.phpが受け取った時に通常と同じチェックを行っているので、
「JavaScript側では設定されてないけどZeroMail的にアウトなもの」があるとエラーを吐きます。
(例:予約済みname値の入力チェック、半角英数の名前の許可、nameを必須項目にするかどうか など)
Ajax利用時にエラーがあった時のレイアウトはcheck.phpと同じで、
表示は配布しているMooToolsのやつだと送信成功と同じ擬似ダイアログになります。
ZeroMailの場合はJavaScriptオフだと普通にPHP使った送信になるので、
どっちを利用するにしても全くチェックがされていないメールが送信されるってことはまずないです。
なお、Ajax用に確認メッセージだけを返す機能は今の所無いです。
JavaScriptで入力チェックを行う場合、メールフォームの入力画面=確認画面なので
さらに送信で確認メッセージを出したらユーザーに二回も内容確認させる手間を与えてしまうからです。
WordPressの主要なメールフォームプラグインや、先にリリースされていたAjaxメールフォームなどにも無かった事を踏まえてつけてないんですが、
要望が多ければ次バージョン以降での実装を検討したいと思います。
お返事ありがとうございます。
チェックの件了解しました。
「Ajax用に確認メッセージだけを返す機能」ですが、
機会があればぜひ実装をお願いします!
入力項目を満たしているチェックと、
その入力内容が正確かどうかのチェックは、別で用意されていたほうが
見やすいような気がします。
いずれにせよ、このようなとても便利なZeroMailをご提供いただきありがとうございます。
いいフォームメールスクリプトがないかと探していて、御サイトにたどり着きました。
とても丁寧な仕様ドキュメントもあって、しかも個人・法人問わずフリー使用OK、
著作権表示もCSSでvisibility:hiddenやdisplay:noneしてOKと非常にありがたい
限りです。感謝です。
さて、実際にスクリプトをサーバに設置してみて、誕生日の年月日をプルダウンメニュー
にしてユーザーに選択させようとしています。現状ですと確認画面で以下のように
それぞれ行が分かれて
誕生年 [2010]
誕生月 [10]
誕生日 [15]
のようになってしまいますが、これを一行にまとめて
誕生日 [2010]年 [10]月 [15]日
のように確認画面で表示したいのです。どのようにすれば良いのがわからないのですが、
何かよい方法はありませんでしょうか?
masa さん>
ご利用ありがとうございます
現仕様では不可能です。が、手を加えれば出来なくもないです。
confim.phpのforeach以下を次のように:
[pre]
if($key=="year"){
echo convert_encode(‘<tr><th scope="row">誕生日</th><td>’);
echo $_SESSION["year"]."年".$_SESSION["month"]."月".$_SESSION["day"]."日";
echo convert_encode(‘</td></tr>’);
}elseif($key!="month" && $key!="day"){
echo convert_encode(‘<tr><th scope="row">’.$value.'</th><td>’);
echo $_SESSION[$key];
echo convert_encode(‘</td></tr>’);
}[/pre]
confim.phpだけだと届くメールの本文では変更前のものになりますが、
zeromail.phpの本文スタイル以下を同じ要領で変更すれば改変できます。
管理者さま、
お返事ありがとうございました。confim.phpのforeachを変更することでうまくいきました。
ありがとうございました。助かりました。
それでちょっと思ったのですが、確認画面、自動返信メール、管理者通知メールも、
それぞれ外部ファイルでテンプレート化されていると、自由度が格段にあがって
さらに使いやすくなりそうですね。smartyみたいにタグで囲った部分を置換してあげる
イメージでしょうか?次バージョン以降に期待してます (*^_^*)
はじめまして。
初期のバージョンからお世話になっています。
最近のバージョンでファイル添付も可能になって、増々便利なメールフォームになったと思いますが、
このファイル添付を管理者通知メールに添付するのではなく、サーバーに保存しておいて、
管理者通知メールがくる→サーバーにアクセスしてダウンロードしてくる、という形には改変できますでしょうか。
大きなファイルが複数に渡ってまとめてメールで添付送信されると受信が大変なので、
都合のいい時にファイルだけ取りに行くという風にしたいのです。
管理者画面みたいなのにログインしてログをみてDLするなど選べればベストですが、
それだと改造が多岐にわたって大変そうなので、上記の機能ぐらいなら可能でしょうか。
shunshuu さん>
長らくご利用頂いているようでありがとうございます
本体の改変で添付ファイルをサーバーに残すようにすることは可能です。
zeromail.phpの469行目から始まるif文の最初の条件(添付ファイル無し)の「中身」だけ残して
if文とelseif(添付ファイルあり)以下を削除すればメールに添付して送信されなくなります。
ファイル名は本文に記述されるので変更はしなくても大丈夫です。
管理画面は機能的に出来なくもないと思うんですが、
私がそういう機能をもったメールフォームを使った事がないので
どんなものにすればいいのかイメージ出来ないってのが問題ですね…
管理人様
早速のご返答ありがとうございました。
早速取り掛かろうと思ったのですが、その前の段階で頓挫中しております。
添付するPDFの中に、『[.pdf] のファイル形式が不適切です。』と表示されエラーになってしまうPDFがあります。
他のファイルでもチェックしてみましたが、docファイルとxlsファイルが添付できなかったのですが、
「application/vnd.ms-excel」「application/msword」をそれぞれmine typeに追加したところ添付可能になりました。
PDFのほうは容量が問題なのかと思いましたが、添付できないファイルより容量が大きいファイルでも
添付できるのがありましたので関係ないようです。
添付できないPDFを調べたら、「DocuCentre」や「EDICOLOR」などの複合機や特殊な(?)DTIソフトで作られているものでしたが、それが何か関係ありますでしょうか。
専門外になってしまうかもしれませんが、何か分かりましたら教えてください。
すいません、追記です。
実際のファイルがないと分からないという場合でしたら、
よければ管理人様のメールアドレスにそのPDFファイルを送らせていただきます。
shunshuu さん>
>添付できないファイルより容量が大きいファイルでも添付できるのがありました
これがちょっと気になります。バグかな…と。
弾かれるポイントがファイルタイプのチェックのようなので、
添付しようとしているファイルのmineタイプが間違っているのではないか?としか言えません。(nullになってるとか)
PDFのmineタイプがapplication/pdfになっているか調べてみてください。
メールで送って頂ければ此方でも検証してみます。
すいません、連絡遅れましたが、メールで添付できないファイル送らせていただきました。
Acrobatのプロパティで見た感じではフォーマットがapplication/pdf になっているようです。