Home > ZeroMail

ZeroMail

  • 2012-01-28 (土) 1:15

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

多忙の為サポートがほとんど出来ない状態になっています。
重篤な問題に関しては直せる保障が限りなく低いので、
他のスクリプトをご検討頂いた方が解決が早いかもしれません。

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

「○○したけど××できませんでした。どうしたらいいですか?」という知恵袋風の質問はやめてください :(

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

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

Comments:227

ろんろん 08-05-26 (月) 22:53

こんにちは。
Zeromailありがたく使わせていただこうと思っています。
ところでzeromail.phpの51行目の行末に;が抜けていました。ご報告まで。

Tenderfeel 08-05-27 (火) 15:43

ろんろんさん>
うわわー本当ですね、教えてくださってありがとうございます。

チョッパー 08-07-24 (木) 22:50

ZeroMailとても使いやすいです。
使用していて気がついたので報告しておきます。

completion.html
init.php
check.php
にが抜けているみたいです。

チョッパー 08-07-24 (木) 22:52

すいません。codeタグを忘れてしまったので、変な文章になってしまいました。


が抜けているみたいです。

チョッパー 08-07-24 (木) 22:54

codeタグ使えないですね。
度々、すいません。
headタグが閉じられていないようです。

Tenderfeel 08-07-25 (金) 1:32

チョッパーさん>
お・・・おおおおおお・・・・これはひどい

突っ込みありがとうございます つД`)

sigeto 09-04-25 (土) 11:09

ZeroMail気に入りました。

チェックボックスを設置しメールで受信した場合、

チェックボックス1
チェックボックス2
チェックボックス3

の様に改行されますが、改行でなく「区切り記号」で、

チェックボックス1 チェックボックス2 チェックボックス3

の様に改造するには何処を直せば良いのでしょうか?

Tenderfeel 09-04-27 (月) 10:36

ご利用ありがとうございます。
zeromail.phpの183行目付近にPOSTされた配列を処理している下記ソースがあります

 if(is_array($value)){
  $value=implode("\n", $value);
 }

この”\n”を変更すれば改行から別の文字列に変えることが出来ます。お試しください。

sigeto 09-04-27 (月) 16:31

早速のご返事ありがとうございます。

”\n”を変更して、改行から別任意の文字列に変更できました。

(183行ではなく163行でした)

ハゲそう 09-05-15 (金) 16:21

まず、素晴らしいソフトを開発、公開して下さったこと感謝します。
たくさん調べましたが、最高です。

ひとつ質問ですが、SSLの使用は可能でしょうか?
サーバに共有SSLのサービスがあり、それを使おうとしてるのですが、うまくいきません。
原因がわからず困り果てております。

お手数をお掛け致しますが、よろしくお願い致します。

Tenderfeel 09-05-16 (土) 0:58

はげぞうさん>
共有SSLはhttps外からのファイル読み込みを禁止にしている場合があるので、
使用するファイルを同https以下に設置すれば動かす事は出来ると思います。

ただし暗号化されるのはフォームに書き込んだ内容を送信する部分だけで
スクリプトから送信されるメール自体は対応してないので暗号化されません。
また、スクリプトからのメール送信をSSL化しても、受信にSSL使ってないとあんまり意味がないです。

ハゲそう 09-05-18 (月) 18:04

お返事ありがとうございます。
アドバイス通り試したところ、ようやくうまく行きました。
おかげ様で公開にこぎつけました。
ありがとうございました。

ゆつな 09-11-25 (水) 20:58

zeromail愛用させていただいてます。ありがとうございます。

先日メーラーをThunderbirdに乗り換えたのですが
Thunderbirdでメールを受け取ると、
zeromailから受けとったメールのヘッダが本文の方まで出てきてしまいます。
こちらを修正する方法はありますでしょうか?

Tenderfeel 09-11-26 (木) 14:59

ゆつな さん>

もし設置前にzeromail.phpのソースを変更したのなら、記述ミスの可能性があります。
Thunderbardだけがおかしくなるのであれば、ソフト側に原因があると思えますが
情報が少なすぎてなんとも言えません……。
どうしても解決しなければ設置したものをzipで再圧縮して送ってください。

やす 10-03-09 (火) 0:54

はじめまして、検索によりこちらのサイトに巡り会うことができました
ZeroMail v1.2を是非ダウンロードさせて頂きたいのですが
404となっています。
本体の方は配布終了でしょうか?

Tenderfeel 10-03-09 (火) 15:07

やす さん>
すみません、ファイルのURLを間違えてました。絶賛配布中なので再クリックしてみてください :D

やた 10-03-09 (火) 17:12

はじめまして。
便利に使わせて頂いております。
v1.2 ですが、
<input type="hidden" name="require" value="name値,name値" />
とした時に、必須チェックはされるのですが、実際には送信できてしまいます。

zeromail.php の116行目でチェックされた際に、 $error++; が必要かと思います。

if(! array_key_exists($reqname, $POST)) {
$formitem[$reqname]=convert_encode(’この項目は必須入力です。’);
$error++;
}

こんな感じでしょうか。
バグレポートでした。確認して修正頂ければと思います。

Tenderfeel 10-03-10 (水) 10:38

やた さん>
ご指摘ありがとうございます。早速修正致しました。

Takuzou 10-03-21 (日) 18:25

お世話になります。

お名前.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);

などが必要になるのでしょうか?

Takuzou 10-03-21 (日) 18:26

すみませんヘルプの部分が切れてしまいました。

【PHP】

○概要

◦エンコードを行う
◦接続情報作成
◦mb_send_mailを使用
=== サンプルここから ===

<?php
mb_language( "ja" );
mb_internal_encoding("EUC-JP");

$send = mb_convert_encoding("本文", mb_internal_encoding(), "SJIS");
$to = "送信元メールアドレス";
$from = "送信先メールアドレス";

ini_set("SMTP", "SMTPサーバ名");
ini_set("sendmail_from", $from); 

mb_send_mail($to, $send, $send); 

print "OK";
?>

SmtpMail.Send(mm)

=== サンプルここまで ===

Tenderfeel 10-03-23 (火) 12:22

Takuzou さん>
どうもお名前.comではmb_send_mailを利用する場合に下記iniの追加が必要みたいですね。
zeromail.phpの先頭あたりに入れてみてください。

ini_set("SMTP", "SMTPサーバ名");
ini_set("sendmail_from", $from);

Takuzou 10-03-24 (水) 3:51

お忙しい中での返答ありがとうございました。

zeki 10-03-26 (金) 23:07

はじめまして。メールフォーム使わせて頂きます!
高機能でありがたいです。

設置に関して質問なのですが、添付ファイルをつけたときに送信者のメールアドレスにドメインのような情報が追記されて、
自動返信が動作しないのですが、なにか必要な設定があるのでしょうか?

添付ファイルをつけないと自動返信は動作しました。

サーバ環境にもよるところがあるのでしょうか・・・

zeki 10-03-27 (土) 11:12

質問させて頂いた者です。返信先のメールアドレスの渡し方を調整してなんとか解決できました!
お騒がせしました・・・。

Tenderfeel 10-03-29 (月) 19:48

zeki さん>
なんだかバグっぽいですね…。もし差し支えなければ調整した部分のソースを書き込んで頂けると助かります。

miki 10-04-07 (水) 5:20

はじめまして。
添付ファイル機能付のものを探してたどり着きました。

sakuraのサーバー(スタンダードプラン)を利用しているのですが、
「フォームメール確認」の「この内容で送信」を押すと、
「Internal Server Error」
が出てしまいます。

また、フォームデータを受け取ることは出来るのですが、
自動返信メールは機能していないようです。
※添付ファイルのあり、なしは関係ないようです。

何か、特別な設定が必要でしょうか?

sakuraで機能しないようでしたら、別のサーバーを借りようと思っていますので、
その際、ご推薦のレンタルサーバーなどございましたら、
教えていただけましたら幸いです。

Tenderfeel 10-04-07 (水) 14:03

mikiさん>

色々とバグがありましたので、修正版UPまでお待ち下さい。

Tenderfeel 10-04-07 (水) 14:44

mikiさん>

ver1.3で修正されていると思います。お試し下さい。

yoshi 10-04-21 (水) 22:54

はじめまして。ファイル添付ができるUTF-8対応のメールフォームを探してたどりつきました。
とはいえ、残念ながらうまく稼動しません。できましたら、その原因等を教えて頂ければと思います。
症状としては、
①テンプレート等なにもいじらずに、必須項目である名前、メールアドレス、お問い合わせ内容だけを入力して
、確認画面へ画面遷移をすると、ご連絡方法以下の項目にPHPのNoticeエラーが出る(これは項目に入力をするか、php.iniで表示をやめるように設定すれば問題ないのですが)。/confim.phpの19行目にとりあえず問題があるらしい。keyに問題?
②送信すると、自動返信メールが届かず、届いた自分宛メールに、項目名等は表示されるが、入力した内容が記載されていない。
正直、私のスキルではお手上げ状態です。おそらくは、サーバーの問題なのでしょうが、サーバーがお名前.comのVPSなので、Takuzouへのアドバイス通り、ini_set(”SMTP”, “SMTPサーバ名”);とini_set(”sendmail_from”, $from);をzeromail.phpの先頭に入れたのですが、解決できませんでした。何かこころあたりがありましたら、是非ともご教授下さい。

Tenderfeel 10-04-22 (木) 1:22

yoshi さん >
VPSなら共用と設定が異なっている可能性もありますよね…。

Noticeはエラー表示のレベルを変更するか、エラーそのものを非表示にするかでとりあえず解決できますが、
全文を見てみたいので、お手数ですがメールでNoticeエラーの全文を送って頂けないでしょうか。
アドレスは tenderfeel@gmail.com です。
ついでに、設置サーバのphp.infoのスクリーンショット(または保存html)をつけて頂けると助かります。
宜しくお願いします。

yoshi 10-04-22 (木) 16:29

Tenderfeelさん

お騒がせしました。不具合修正できました。
どうやら、php.iniの設定に問題があったようです。
session.gc_diviser=1000→100に
session.referer_check=”URL”→空に
session.entropy_lengthとsession.entropy_fileが二つづつ作ってしまっていたので、
一つにして、さらに頭に;をつけて非稼動に
したところ、
自動返信メールも届き、内容も掲載されるようになりました。

これからも、貴サイトのさらなるご発展に期待しております。
お心遣い頂きまして、ありがとうございました。

yoshi

yoshi 10-04-22 (木) 18:57

たびたび、すみません。
追加質問なのですが、ZeroMailで、予約されているname値として、messageで文字総数を決められるようになっているとあるのですが、zeromail.phpにはそうしたソースが見当たりません。タグに何か入れ込むとできるようになるのでしょうか。教えて下さい。

yoshi

Tenderfeel 10-04-22 (木) 19:25

yoshi さん >
解決したようで何よりです。

総文字数は説明のミスでリンク総数の間違いでした。
必要であれば追加することは出来ます。

266行目 本文禁止語句チェックの下(276と277行の間くらい)に追加


elseif(mb_strlen($value) > 1000) {
$formitem[$name[0]]=convert_encode('<strong>1000文字以下にしてください。</strong>');
$error++;
}
yoshi 10-04-22 (木) 20:30

早速のご返答ありがとうございました。
また、質問することがあるかもしれませんので、今後ともよろしくお願いします。
yoshi

kumao 10-04-29 (木) 1:59

はじまして。お世話になります。

ZeroMail ver1.3

フォームで

と入れると
確認画面ですべての項目が正しく入力済みに関わらず、
「前のページに戻り、入力エラーを修正してください。」
のエラーがでます。
フォームの記述がおかしいのでしょうか?
———————————————————————

性別

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

kumao 10-04-29 (木) 2:09

失礼いたしました。コード設定を忘れておりました。

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>

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

Tenderfeel 10-04-30 (金) 11:07

Kumao さん >

バグでしたのでソースの修正が必要です。
メールで詳しく書きましたのでご確認ください。

kumao 10-04-30 (金) 15:26

早々のご対応ありがとうございます。
感謝いたします。

ZeroMailは本当にかゆいところに手が届くツールですね。
今までも色々捜して、試して見ていましたが、どれも帯に短したすきに長しで、
私の理想とする物がありませんでした。

でも、このZeroMailはほしいと思う機能がすべて揃っております。

YUI 10-06-07 (月) 17:15

はじめまして。
確認画面について質問なのですが、
Ajax利用のエラーチェックの後、そのまま送信ではなく、
エラーチェック→確認画面→完了画面とすることは可能でしょうか?

確認画面利用バージョンだと戻って修正するのが面倒だし、
かといって、Ajax利用だとすぐ送信というのが不安に感じる
というのが理由です。

どうぞ宜しくお願いします。

Tenderfeel 10-06-09 (水) 15:49

YUI さん>

メールフォームにJavaScriptの入力チェックだけ仕込めば画面遷移させられますよ。
入力チェックはJavaScirptとZeroMailの設定を同じにしてください。

>Ajax利用だとすぐ送信というのが不安に感じるというのが理由です。

Ajaxによる送信でも、フォームの内容をzeromai.phpが受け取った時に通常と同じチェックを行っているので、
「JavaScript側では設定されてないけどZeroMail的にアウトなもの」があるとエラーを吐きます。
(例:予約済みname値の入力チェック、半角英数の名前の許可、nameを必須項目にするかどうか など)
Ajax利用時にエラーがあった時のレイアウトはcheck.phpと同じで、
表示は配布しているMooToolsのやつだと送信成功と同じ擬似ダイアログになります。
ZeroMailの場合はJavaScriptオフだと普通にPHP使った送信になるので、
どっちを利用するにしても全くチェックがされていないメールが送信されるってことはまずないです。

なお、Ajax用に確認メッセージだけを返す機能は今の所無いです。
JavaScriptで入力チェックを行う場合、メールフォームの入力画面=確認画面なので
さらに送信で確認メッセージを出したらユーザーに二回も内容確認させる手間を与えてしまうからです。
WordPressの主要なメールフォームプラグインや、先にリリースされていたAjaxメールフォームなどにも無かった事を踏まえてつけてないんですが、
要望が多ければ次バージョン以降での実装を検討したいと思います。

YUI 10-06-11 (金) 16:29

お返事ありがとうございます。
チェックの件了解しました。

「Ajax用に確認メッセージだけを返す機能」ですが、
機会があればぜひ実装をお願いします!
入力項目を満たしているチェックと、
その入力内容が正確かどうかのチェックは、別で用意されていたほうが
見やすいような気がします。

いずれにせよ、このようなとても便利なZeroMailをご提供いただきありがとうございます。

masa 10-06-17 (木) 8:17

いいフォームメールスクリプトがないかと探していて、御サイトにたどり着きました。

とても丁寧な仕様ドキュメントもあって、しかも個人・法人問わずフリー使用OK、
著作権表示もCSSでvisibility:hiddenやdisplay:noneしてOKと非常にありがたい
限りです。感謝です。

さて、実際にスクリプトをサーバに設置してみて、誕生日の年月日をプルダウンメニュー
にしてユーザーに選択させようとしています。現状ですと確認画面で以下のように
それぞれ行が分かれて

誕生年 [2010]
誕生月 [10]
誕生日 [15]

のようになってしまいますが、これを一行にまとめて

誕生日 [2010]年 [10]月 [15]日

のように確認画面で表示したいのです。どのようにすれば良いのがわからないのですが、
何かよい方法はありませんでしょうか?

Tenderfeel 10-06-17 (木) 11:58

masa さん>

ご利用ありがとうございます :D
現仕様では不可能です。が、手を加えれば出来なくもないです。

confim.phpのforeach以下を次のように:

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>');
}

confim.phpだけだと届くメールの本文では変更前のものになりますが、
zeromail.phpの本文スタイル以下を同じ要領で変更すれば改変できます。

masa 10-06-19 (土) 2:43

管理者さま、

お返事ありがとうございました。confim.phpのforeachを変更することでうまくいきました。
ありがとうございました。助かりました。

それでちょっと思ったのですが、確認画面、自動返信メール、管理者通知メールも、
それぞれ外部ファイルでテンプレート化されていると、自由度が格段にあがって
さらに使いやすくなりそうですね。smartyみたいにタグで囲った部分を置換してあげる
イメージでしょうか?次バージョン以降に期待してます (*^_^*)

shunshuu 10-06-21 (月) 18:12

はじめまして。

初期のバージョンからお世話になっています。
最近のバージョンでファイル添付も可能になって、増々便利なメールフォームになったと思いますが、
このファイル添付を管理者通知メールに添付するのではなく、サーバーに保存しておいて、
管理者通知メールがくる→サーバーにアクセスしてダウンロードしてくる、という形には改変できますでしょうか。

大きなファイルが複数に渡ってまとめてメールで添付送信されると受信が大変なので、
都合のいい時にファイルだけ取りに行くという風にしたいのです。

管理者画面みたいなのにログインしてログをみてDLするなど選べればベストですが、
それだと改造が多岐にわたって大変そうなので、上記の機能ぐらいなら可能でしょうか。

Tenderfeel 10-06-21 (月) 22:28

shunshuu さん>
長らくご利用頂いているようでありがとうございます :D

本体の改変で添付ファイルをサーバーに残すようにすることは可能です。

zeromail.phpの469行目から始まるif文の最初の条件(添付ファイル無し)の「中身」だけ残して
if文とelseif(添付ファイルあり)以下を削除すればメールに添付して送信されなくなります。
ファイル名は本文に記述されるので変更はしなくても大丈夫です。

管理画面は機能的に出来なくもないと思うんですが、
私がそういう機能をもったメールフォームを使った事がないので
どんなものにすればいいのかイメージ出来ないってのが問題ですね…

shunshuu 10-06-22 (火) 20:00

管理人様

早速のご返答ありがとうございました。

早速取り掛かろうと思ったのですが、その前の段階で頓挫中しております。
添付するPDFの中に、『[.pdf] のファイル形式が不適切です。』と表示されエラーになってしまうPDFがあります。

他のファイルでもチェックしてみましたが、docファイルとxlsファイルが添付できなかったのですが、
「application/vnd.ms-excel」「application/msword」をそれぞれmine typeに追加したところ添付可能になりました。

PDFのほうは容量が問題なのかと思いましたが、添付できないファイルより容量が大きいファイルでも
添付できるのがありましたので関係ないようです。

添付できないPDFを調べたら、「DocuCentre」や「EDICOLOR」などの複合機や特殊な(?)DTIソフトで作られているものでしたが、それが何か関係ありますでしょうか。

専門外になってしまうかもしれませんが、何か分かりましたら教えてください。

shunshuu 10-06-22 (火) 20:02

すいません、追記です。
実際のファイルがないと分からないという場合でしたら、
よければ管理人様のメールアドレスにそのPDFファイルを送らせていただきます。

Tenderfeel 10-06-22 (火) 21:31

shunshuu さん>

>添付できないファイルより容量が大きいファイルでも添付できるのがありました
これがちょっと気になります。バグかな…と。

弾かれるポイントがファイルタイプのチェックのようなので、
添付しようとしているファイルのmineタイプが間違っているのではないか?としか言えません。(nullになってるとか)
PDFのmineタイプがapplication/pdfになっているか調べてみてください。
メールで送って頂ければ此方でも検証してみます。

shunshuu 10-06-23 (水) 10:42

すいません、連絡遅れましたが、メールで添付できないファイル送らせていただきました。
Acrobatのプロパティで見た感じではフォーマットがapplication/pdf になっているようです。

Sakura 10-07-26 (月) 15:32

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

Tenderfeel 10-07-26 (月) 17:53

Sakuraさん>

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

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

Sakura 10-07-27 (火) 22:09

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

nyamu 10-08-04 (水) 9:29

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

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

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

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

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

と、書き換えました

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

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

Tenderfeel 10-08-04 (水) 10:20

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

nyamu 10-08-04 (水) 14:06

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

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

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

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

Tenderfeel 10-08-04 (水) 14:22

nyamuさん>

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

nyamu 10-08-04 (水) 15:19

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

スペースとおりました!

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

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

monmo 10-08-11 (水) 21:18

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

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

Tenderfeel 10-08-11 (水) 23:31

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

monmo 10-08-12 (木) 0:03

Tenderfeelさん>

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

Mayan 10-08-17 (火) 13:51

はじめまして。

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

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

Tenderfeel 10-08-18 (水) 18:07

Mayan さん>

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

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

$name.MAILSUBJECT

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

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

Mayan 10-08-18 (水) 21:09

>Tenderfeel さん

ありがとうございます!
早速設定しました!

nyamu 10-08-24 (火) 17:19

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

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

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

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

の記述位置なのですが、

       }//end:foreach

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

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

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

Tenderfeel 10-08-24 (火) 18:56

nyamu さん>

添付ファイルとラジオボタンを必須にする場合はhiddenフィールドを使ってみてください。
<input type="hidden" name="require" value="name値,name値" />

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

nyamu 10-08-25 (水) 10:38

何度も申し訳ありません

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

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

Tenderfeel 10-08-25 (水) 15:10

nyamu さん>

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

nyamu 10-08-25 (水) 16:51

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

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

Tenderfeel 10-08-25 (水) 17:20

一応こっちにも書いておきます。

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

nyamu 10-08-26 (木) 9:54

1.4で解決しました!!

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

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

かぼちゃ 10-08-30 (月) 17:01

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

Tenderfeel 10-08-30 (月) 18:32

かぼちゃ さん>

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

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

SAKURA 10-08-30 (月) 22:05

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

SAKURA 10-08-30 (月) 22:08

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

Tenderfeel 10-08-31 (火) 0:13

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らしいので
それぞれ上記変数の配列に追加してみてください。

SAKURA 10-08-31 (火) 10:44

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

かぼちゃ 10-08-31 (火) 20:47

>Tenderfeelさん

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

Tenderfeel 10-09-01 (水) 9:36

かぼちゃ さん>

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

かぼちゃ 10-09-01 (水) 17:44

>Tenderfeelさん

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

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

Tenderfeel 10-09-01 (水) 19:30

かぼちゃ さん>

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

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

AL 10-09-07 (火) 19:44

こんにちは

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

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

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

Tenderfeel 10-09-08 (水) 9:31

AL さん>

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

ヒロ 10-09-16 (木) 10:12

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

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

が入ってしまいます。

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

Tenderfeel 10-09-16 (木) 10:51

ヒロ さん>

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

ヒロ 10-09-16 (木) 14:16

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

Tenderfeel 10-09-16 (木) 15:57

ヒロさん>

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

Tenderfeel 10-09-29 (水) 23:03

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

もじもじ 10-10-24 (日) 0:24

素晴らしいソフトですね。
活用中です。

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

{name}様

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

Tenderfeel 10-10-25 (月) 11:23

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

ゆうた 10-11-17 (水) 10:45

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

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

Tenderfeel 10-11-17 (水) 10:51

ゆうた さん >

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

ゆうた 10-11-18 (木) 23:04

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

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

Tenderfeel 10-11-19 (金) 0:39

ゆうた さん >

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については借り物なのでライセンスコメントは消さないでください。

ゆうた 10-11-19 (金) 17:09

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

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

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

Tenderfeel 10-11-19 (金) 17:16

ゆうた さん >

既存のソースを削除してコピペでおkです。検索をすればプラグインのソースが見つかると思います。
圧縮をかけたい場合は下記Closure Compilerが便利です。
http://closure-compiler.appspot.com/home

ゆうた 10-11-22 (月) 12:13

ようやく意味がわかり、無事変えることができました!
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です。

Tenderfeel 10-11-22 (月) 15:15

ゆうた さん >
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モードの仕様は意外と単純なものです。
使っているプラグインを教えて頂ければ対応の仕方を具体的に出せると思います。

ゆうた 10-11-22 (月) 16:21

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

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

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

Tenderfeel 10-11-23 (火) 0:21

ゆうた さん >

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

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

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

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

ゆうた 10-11-24 (水) 11:51

お疲れ様です
Tenderfeelさん

ありがとうございました!
なんとかZeroMailとjQueryで動作できました!
この先もまた勉強してZeroMailでかくなっていったら楽しいです~

また疑問がでたら伺いますです!

ゆうた 10-11-25 (木) 12:48

あまりに連打で恐縮です。
ゆうたです。

jQueryがうまくいったため、調子にのってPHPの挙動も含めて
いろいろいじっていますが…

ふと、連続投稿時間の制限なんてできないかと模索を始めました。
一日に1回の投稿のみ~という設定を目指してみています。

おそらくtime()関数かlocaltime()関数の活用だな!と思い思考錯誤している段階です。
ZeroMail(Ajax)に加えて使うとすればどのような入れ込み方が好ましいのでしょうか。ZeroMailのPHP翻訳にかかっていて相当時間かかりそうです…
お手をお借りしたいです先生~><

Tenderfeel 10-11-25 (木) 13:40

ゆうた さん >

投稿の制限を掛けるには「前回投稿した日時」の記憶が必須になります。
内容確認か送信時に保存されている日時との比較をして、期限内であればfalseという手続きをすれば制限できます。

記憶する方法はJavaScriptとPHPそれぞれにあります

[PHP]
・file
・database
・cookie

[JavaScript]
・cookie
・LocalStorage (HTML5 API)

一番お手軽なのはCookieですが、これはユーザーが手動でリセットをすることが出来るので
厳密に行いたいのであればPHPのFileかDBを使います。
まずはCookieでの制限を試してみては如何でしょうか。

ゆうた 10-11-27 (土) 1:20

ゆうたです!

お勧めして頂いたcookieでやってみました、これでもいいかもしれませんです。
プログラムでやるというよりは、受信した側でのフィルタリングやスパム対策なりで
閲覧するメールを取捨したほうがいいかもしれないなとも思ったりしてます!

そこで、送信ボタンをJavaScriptにしようとしているのですが、
functionで指定して、document~submit()をしても送信自体できず
なにかがぶつかっているのかなとおもったり。

仕様としてZeromailはJavaScriptをオフにすると送信できないようにする事はできませんでしょうか~?

Tenderfeel 10-11-27 (土) 3:52

ゆうた さん >

多分このデモと同じ事をやっていると思うんですけども
http://www.javascript-coder.com/javascript-form/javascript-form-submit-example.html

Ajaxで何かしら送受信する場合はXMLHttpRequestを利用するので、submit()は使いません。
http://ja.wikipedia.org/wiki/XMLHttpRequest

XHRは“すでに読み込んだページからさらにHTTPリクエストを発することができ、ページ遷移することなしにデータを送受信できるAjaxの基幹技術である。” なので、
実際に送信する値の形式はsubmit()するのと変わらず、key=value&key2=value2 というものになります。

XMLHttpRequestはブラウザ間の差異が激しいため自前での実装は大変骨が折れますが
先人が開発したライブラリがあったりjQueryやMooToolsなどのJS Frameworkに組み込まれてたりするので、今は割と簡単に利用することができます。
私が配布しているzeromail-ajax.jsでは、MooToolsのForm.Request.AppendにForm.Validatorを組み合わせて使っています
http://mootools.net/docs/more/Forms/Form.Request.Append

>仕様としてZeromailはJavaScriptをオフにすると送信できないようにする事はできませんでしょうか~?
フォームはformタグにaction属性を付けなければ送信が出来ません。
JavaScriptでactionを付与すればJavaScriptオフ環境での送信が不可能となります。

shunshuu 10-12-08 (水) 12:00

以前お世話になりました、shunshuuです。お久しぶりです。あの時は色々ありがとうございました。
遅まきながら新しいzeromail、使わせていただきました。
まだ添付機能の部分は使っていないのですが、管理画面機能を使ってみたところ、幾つか気になる部分がありました。

zeromail.css のZeroMail ADMIN CSS 内の#admin h2 内にて zoom:1 で最後の;が抜けている
admin内の index.php の293行目にてが抜けている

です。
引き続き、添付ファイルの機能も使ってみたいと思います^^

shunshuu 10-12-08 (水) 12:02

すいません、ソースが非表示になってました

admin内の index.php の293行目にてが抜けている
は、
<tr>
です。

shunshuu 10-12-08 (水) 16:12

連投で申し訳ございません。
管理画面なのですが、投稿した内容は問題なく表示・ダウンロードも可能なのですが、
ログ一覧画面の「ログを全て削除」、ダウンロード画面の「ログを全て削除」にcheckを入れてダウンロードしても、
ログが削除されません。
ログ一覧画面の「ログを全て削除」を実行すると「エラーが発生しました」と表示されてしまいます。
以前のように実行画面内を見ないと分からないかもしれませんが、考えうる原因などありますでしょうか。
なお、log.phpのパーミッションは606にしています。

Tenderfeel 10-12-08 (水) 17:20

shunshuu さん >

CSSとHTMLについてご指摘ありがとうございます。次バージョンで反映したいと思います。

ログ削除に関してですが、ファイルそのものをunlink関数で削除してまた作成するという手法で行っています。
なのでunlinkでエラーになっているということになります。
失敗原因はディレクトリパーミッション、セーフモード、ファイル名に起因することが多いです。
保存が出来ているということはファイル名についてはOKなので、ディレクトリかセーフモードかになりますね。

shunshuu 10-12-09 (木) 15:13

Tenderfeel様

ご返答ありがとうございました。
以前のやり取りでセーフモードにはなってないと思ったので、
ディレクトリのパーミッションを変更しましたらできました!
ありがとうございました^^

富井さん 10-12-13 (月) 11:32

お世話になっております。
ver1.4.5を使用しているのですが、添付ファイルについて、xls、docについては問題ないのですが、
zip、jpg、pdfが一部欠損していしまいます。

なにかお心当たりないでしょうか。
よろしくお願いします。

Tenderfeel 10-12-13 (月) 11:56

富井さん >

多分設定の影響だと思います。

1. init.phpの「ファイルの最大サイズ」を変更してみてください
2. サーバーのmemory_limit、post_max_sizeを確認してみてください

富井さん 10-12-13 (月) 15:16

Tenderfeel様

ご回答ありがとうございます。

>1. init.phpの「ファイルの最大サイズ」を変更してみてください
2000KBにしています。

>2. サーバーのmemory_limit、post_max_sizeを確認してみてください
どちらもデフォルト値の8MBになっているようです。

ちなみに、大きいファイルが欠損するわけではなく、どんな大きさでもzip、jpg、pdfがおかしくなります。
jpgのみですが検証しなおしてみたところ、小さいファイルですと、たとえば48.76kbのファイルが91.602kbで届いたりと
大きくなるパターンもあるようです。また、47kb程度までのファイルは破損しませんでした。

他に見直すところなどありますでしょうか。
よろしくお願いします。

Tenderfeel 10-12-13 (月) 16:24

富井さん >

ん~ 私がテストしている環境だと問題なく、また同様の報告を受けたこともないので
何かしらお使いの環境からの影響を受けているのではないかと思うのですが何かはわかりません。
メール添付に関してはオーソドックスにbase64変換しているだけなので、スクリプト内部で特別なことは特にしてないです。
スクリプトのバグではないという前提でサーバーに問題がないとすれば
次に疑うべきはソフトになりますね。セキュリティソフトとかメールソフトとか…

富井さん 10-12-13 (月) 16:46

Tenderfeel様 >

ありがとうございます。
私の環境でも他の環境でも発生しておりますのでやはりサーバーでしょうか…
winサーバーでなにか特別な設定が必要だったりするんでしょうか?

Tenderfeel 10-12-13 (月) 18:14

富井さん >

基本レンタルサーバー環境(LAMP)向けに作ってますのでwindowsサーバーは想定外です…すみません。
windowsサーバーということなら、zeromail.php 532行目付近にあるfopen関数の最後の引数にbを加えれば直るかもしれません。

$fp = @fopen(ZEROMAIL_DIR.UPLOADPASS.$tmp["filename"], “r”);

$fp = @fopen(ZEROMAIL_DIR.UPLOADPASS.$tmp["filename"], “br”);

富井さん 10-12-13 (月) 18:54

Tenderfeel様 >

ありがとうございます。

bをつけると添付ファイルが0kbになってしまいました。

Tenderfeel 10-12-13 (月) 19:21

富井さん >

“rb” でした! X-(

富井さん 10-12-14 (火) 11:17

Tenderfeel様 >

ありがとうございます。
rbにしましたが0kbにはならないものの、破損状況は変わらず…
freadのlengthを100000にしてみましたが100000まで読み込む場合もあれば96927や他の値で終わっている場合もありと
安定しません。

富井さん 10-12-14 (火) 13:50

Tenderfeel様 >

とりあえずは管理画面で対応するということになりました。
ややこしくて申し訳ありませんでした。
ありがとうございました。

Tenderfeel 10-12-14 (火) 14:02

富井さん >

サーバーの構成が気になります。

アップロードディレクトリに保存されているファイルは破損していないんでしょうか?
(送信確認画面のファイル確認で正常表示されるか否か、もしくは、FTPで確認)
それがダメになっていると管理画面でも破損したファイルが使われてしまいます。

富井さん 10-12-16 (木) 10:11

Tenderfeel様 >

アップロードの時点では破損していないようで、プールするようにして確認すると
正常なファイルが見えるのです。
また、xls、docといったリッチテキスト系ドキュメントは正常に送信されるのが引っ掛かるところですが…

管理画面を設置しましたところ、正常に見えており、担当の方にご確認いただいているところです。

Tenderfeel 10-12-16 (木) 12:12

富井さん >

ということはメールに添付する処理で何かしら影響を受けてるということになりますね。
メールソフトやセキュリティソフトの影響もなさそうですか?
再現が出来ず有力な情報もないので、元画像と画像が添付されたメール(破損しているもの)を頂ければ何か分かるかもしれません。
差し支えなければ 私のHN+@gmail.com までよろしくお願いします。

富井さん 10-12-16 (木) 14:27

Tenderfeel様 >

メールソフト、セキュリティソフトともに別環境で受信しても同じですので影響ないと思われます。

メール飛ばしましたのでご確認いただけますでしょうか。
よろしくお願いします。

Tenderfeel 10-12-16 (木) 15:43

富井さん >

メールありがとうございました。調べてみます。

富井さん 10-12-22 (水) 15:50

Tenderfeel様 >

ご無沙汰しております。
あれから模索しまして、解決いたしました。

ファイル読み込みよりエンコード時が怪しいのか?と思いPHPを5にしてもらっても
変わらず…
あきらめかけていたところ、chunk_splitに行きつきました。

536行目あたりのエンコードの挙動を
$encoded = chunk_split(base64_encode($contents));
としたところすっきり解決しました。

あくまでもwinIIS6なのでLinapacheに合うかどうかはわかりませんが、ご報告までに。

ありがとうございました。

Tenderfeel 10-12-22 (水) 16:11

富井さん >

こちらでも原因が特定出来ずにいたのですが、解決したようで良かったです。
chunk_splitで解決したというのは使用することでRFC 2045規約に沿わせるからなんでしょうね…。
この関数については全く盲点だったので次のバージョンアップでfixしてみようと思います。ご報告ありがとうございました :D

nor 11-01-02 (日) 23:54

Tenderfeelさま

明けましておめでとうございます。
ようやく理想のメールフォームを見つけて、とても嬉しく思っています。

動作確認のため、送信先メールアドレスのみ変更して、ファイルを
サーバ(さくらのスタンダードプラン)にアップしたのですが、
「500 Internal Server Error」が出てしまいます。

一通りファイルは見てみたつもりなのですが、どこを変更すれば
良いかよく分かりませんでしたので、教えていただけますでしょうか。
どうぞよろしくお願いいたします。

Tenderfeel 11-01-04 (火) 8:49

nor さん >

推理するには些か情報が足りませんので

1. どのタイミングでエラーが表示されますか?
2. パーミッションは変更してありますか?
3. 解凍したままの状態でアップロードした場合にもエラーがでますか?

以上お答えください。よろしくお願いします。

nor 11-01-04 (火) 22:24

Tenderfeelさま

お返事ありがとうございます。

1. どのタイミングでエラーが表示されますか?

確認画面の後までは問題なく動作しますが、
「この内容で送信」ボタンを押すと
「500 Internal Server Error」が出ます。

2. パーミッションは変更してありますか?

変更しています。フォルダ、phpファイル共に
705、755、777を試しましたが、動作しませんでした。

3. 解凍したままの状態でアップロードした場合にもエラーがでますか?

テストが成功しているか判断できないので、init.phpの
「フォームデータを受け取るメールアドレス」のみ変更しています。
その他は解凍したままのものです。試しにinit.phpを元に戻して
(メールアドレスを「info@example.com」に戻して)送信してみた
ところ、成功の画面が表示されました。
これはどのように考えたらよろしいのでしょうか。
なお、文字コードは変更していません。

どうぞよろしくお願い致します。

Tenderfeel 11-01-04 (火) 23:33

nor さん >

・確認画面までは動作する
・デフォルトだと送信完了まで動作する
本送信時に何らかのエラーが出ている事は確かですね。

で、スクリプトに問題がないという前提で該当するのは、これか
http://blog.longkey1.net/archives/812

これですが
http://oshiete.goo.ne.jp/qa/1879979.html

前者に該当していない場合は
・php.iniの設定でsendmailへのpathが設定されていない
が怪しいかなと思います。
当てはまるものはないでしょうか?

nor 11-01-05 (水) 3:01

Tenderfeelさま

素早いお返事ありがとうございました。

なるほど!確かに独自ドメインでGoogle Appsを利用しています。
Wordpressではなく生のhtmlなのですが、もし簡単な解決策を
ご存じでしたら教えていただけると大変助かります。
「外部のSMTPで送信」、の辺りは私には難し過ぎまして。

たくさんのフォームを試してきて、ここまで理想に近いフォームはない!
と思っていたので、ここで諦めてしまうのは非常に残念で。
お知恵を拝借したく。

どうぞよろしくお願い致します。

Tenderfeel 11-01-05 (水) 10:56

nor さん >

GoogleAppsでしたか…。そうなると解決は大分ややこしくなります。
前に挙げた記事で紹介されているWordpressのCimy Swift SMTPは外部のSMTPで送信するプラグインですが
同じようなライブラリを使えばメール送信出来るようになると思います。
ライブラリを使う場合には少なからずzeromail.phpの修正を伴うので、カスタマイズ方法を解説した記事を書くか
直接私が修正するかという対応になりますが、どちらにしても数日時間がかかるのは間違いないです。
別のサーバーに設置するというのが出来ればそれが一番手っ取り早いんじゃないかなと思います。

nor 11-01-06 (木) 2:22

Tenderfeelさま

お返事ありがとうございます。

既に稼働しているサイトなので、他のサーバを利用するのは難しいのです。
もし可能であれば、お待ちしておりますので、カスタマイズ方法を教えて
頂けると大変助かります。
お忙しいところ、また年始早々申し訳ございませんが、
どうぞよろしくお願い致します。

Tenderfeel 11-01-06 (木) 16:22

nor さん >
ドキュメントのHelpに追加するつもりです。…が、何時になるかはまだ分からないので気長にお待ちください。

nor 11-01-06 (木) 17:55

Tenderfeelさま

ありがとうございます!!!感謝、感謝です!
ゆるりとお待ちしてますので、よろしくお願いします。

Tenderfeel 11-01-11 (火) 16:20

nor さん >
ドキュメントを書くにはカスタマイズ箇所の多い内容でしたので
コメントを書かれた時のメールアドレスにZIP付きメールを送信しました。お暇なときにご確認ください。

rad 11-01-31 (月) 11:51

Tenderfeelさま

メールフォームすばらしく使用させていただきたいのですが、
メールアドレスの入力に際して、メールアドレスと確認用のメールアドレスを入れるフォーム場合
どうすればよいでしょう。

ご教授頂ければ幸いでございます。

Tenderfeel 11-01-31 (月) 12:34

rad さん >

ドキュメントの「入力内容のマッチング」をご覧ください
http://zeromail.webtecnote.com/template.php#matching

上記説明にあるサンプルソースは
メールアドレス入力用テキストエリアのnameがemailで、確認用テキストエリアのnameがemail2である、というものになっています。
解凍したフォルダに入っているcontact.htmlに、以下2つのフィールドを追加すれば確認できると思います。

<input type="hidden" name="match" value="email+email2 />
<input type="text" name="email2" />

miyuki 11-02-02 (水) 3:22

Tenderfeel さま

はじめまして。自分のサイトで快適に使わせてもらっています。ありがとうございます。
Win系のサーバーは想定していないとのことなので不躾な質問になってしまうかと思うのですが、
今回友人のページに設置を頼まれまして、そこがWin系のサーバーで設定に詰まってしまいました。。
レンタルサーバーは
http://home.isle.ne.jp/service/infinito_plus/plan/inp-01.html

送信完了画面にはなるのですがバックで送信ができていないようでどこを書き換えていいものやら悩んでいます。。
色々調べて
ini_set( “SMTP”, “hoge.in-plus.jp” );
ini_set( “sendmail_from”, “hoge@hoge.com” );
とか
define(’SMTP_SERVER’,'hoge.in-plus.jp’);
define(’SMTP_PORT’,'25′);
とか加えてやれば動作するかと思ったのですがこれだけだと動作しませんでした。

素人質問で申し訳ないのですがWin系のサーバーで動作するようにできるヒントとかありましたら
ご教授いただけましたら幸いです。。

Tenderfeel 11-02-02 (水) 13:29

miyuki さん>
表向きは何事も無くても何かしらエラーが出ていることがありますので
サーバーのエラーログが拾えるのであればそちらを確認してみてください。
以下FAQからの引用を元に回答させて頂きます。

FAQページにあるsendmailに関する記事
http://winfaq.isle.jp/FaqItem?i_faqId=202&i_categoryId=0
を見るところによると設定は方法はini_setでいいようです。

“CGIプログラム中のメール送信サーバー名を指定する部分で下記をご指定いただき、再度お試しください。
smtp01.win-sv.com もしくは 送信サーバー名のIPアドレス(pingや、nslookupでご確認ください。)
その他、”localhost:25″ 『localhost:ポート番号』の形式でもお試しください。 ”

最後に上記のように書いてありました。こちらは試されましたか?

また、この記事によるとsendmane.exeが利用可能とされています。
http://winfaq.isle.jp/FaqItem?i_faqId=275&i_categoryId=532

記事内にあるソースはPerlの例だと思います。
PHPの場合sendmailのパスはphp.iniでしか変更できないので設定は下記のようになります。
sendmail_path = C:\sendm\sendmane.exe -t -i
(参考:http://homepage1.nifty.com/yito/anhttpd/faq/sendmane.html)

miyuki 11-02-03 (木) 2:30

Tenderfeel さま
ご回答ありがとうございます。

>“CGIプログラム中のメール送信サーバー名を指定する部分で下記をご指定いただき、再度お試しください。
>smtp01.win-sv.com もしくは 送信サーバー名のIPアドレス(pingや、nslookupでご確認ください。)
>その他、”localhost:25″ 『localhost:ポート番号』の形式でもお試しください。 ”

>最後に上記のように書いてありました。こちらは試されましたか?

これのPHPでの記述方を検索して調べたのですが
define(’SMTP_PORT’,’25′);
以外でどんなコードを記述すればいいのか分からなくて詰まってしまいました。。

http://winfaq.isle.jp/FaqItem?i_faqId=275&i_categoryId=532
こちらの記事は見逃していました。。

パスの設定は教えていただいた情報を元にinit.phpの一番上に
$sendmail=’c:\sendm\sendmane.exe -t -i’;
のように書いてみました。

教えていただいた情報を元に色々と試してみましたが今のところ上手くいきません…。
サーバーのログも見る方法があればいいのですが分からず…。

こちら
http://www.synck.com/contents/faq/126945094667773807126681733381.html
で同じサーバーの事例でパスを指定したら解決したというのは見つけたのですがうーむ。。

すごくデザインの拡張性とか使いやすさがお気に入りで使わせていただいていて今回もできればZeroMail使いたい
とこなのでもう少し色々調べてがんばってみます。

ご回答いただきましてありがとうございました。

Tenderfeel 11-02-03 (木) 10:59

miyuki さん >

>パスの設定は教えていただいた情報を元にinit.phpの一番上に
>$sendmail=’c:\sendm\sendmane.exe -t -i’;
>のように書いてみました。

前の回答で書いた通りsendmailのパスは php.ini でしか変更できないので、init.phpに書いても意味がないです。ので消してください。
php.iniはサーバーで動くPHPの設定を根本から変更するもので、zeromailの設定ファイルのことではありません。
サーバーログはコントロールパネルからダウンロード出来る会社が多いですが、代理設置であれば依頼主に確認してもらうしか知る術はないと思います。

defineは任意の定数を定義する関数でありPHPの設定を行うものではないです。
スクリプト側で設定変更を行う時は ini_set を使いますが、設定変更出来るものと出来ないものがあり
sendmail_pathは設定できないものに該当します。 (参考:http://www.php.net/manual/ja/ini.list.php)
ポートはini_setで変更が可能なので ini_set(’smtp_port’, 25); で出来ると思います。

<まとめ>
sendmail_path → ○php.ini ×ini_set
sendmail_from → ○php.ini ○ini_set
SMTP → ○php.ini ○ini_set
smtp_port  → ○php.ini ○ini_set

アイルでは.htaccess での設定変更はできないようです
http://winfaq.isle.jp/FaqItem?i_faqId=390&i_categoryId=628

koba 11-02-08 (火) 22:44

はじめまして!色々メールフォームを探していてzeromailにようやく辿り着きました。本当にいい機能があって助かりました。
一つ質問なのです。
ふりがなを必須項目にする場合、name=”name2_jpa_req”と記述しました。
チェックはしてくれるのですが、値が空の場合、確認画面で何も表示されなくて困っています。
英数字だけの入力の際は、確認画面で赤字でエラーが表示され、正常に表示されています。
どうやったら値が空の場合でも確認画面でエラー文字が表示されるのでしょうか?

rad 11-02-09 (水) 9:57

Tenderfeel 様

>ドキュメントの「入力内容のマッチング」をご覧ください
>http://zeromail.webtecnote.com/template.php#matching

>上記説明にあるサンプルソースは
>メールアドレス入力用テキストエリアのnameがemailで、確認用テキストエリアのnameがemail2である、というものになっています。
>解凍したフォルダに入っているcontact.htmlに、以下2つのフィールドを追加すれば確認できると思います。

>
>

ご丁寧なご回答ありがとうございました。
無事動作いたしました。

Tenderfeel 11-02-09 (水) 11:20

koba さん >

_reqの処理でバグがありました。お手数かけて申し訳ありません。
次のバージョンアップにて対応いたしますが、応急処置として
zeromail.phpの131行目にある $error++; の後に continue; を挿入すれば必須が動作するようになります。

koba 11-02-10 (木) 23:05

Tenderfeel様

>_reqの処理でバグがありました。お手数かけて申し訳ありません。
>次のバージョンアップにて対応いたしますが、応急処置として
>zeromail.phpの131行目にある $error++; の後に continue; を挿入すれば必須が動作するようになります。

お返事が遅くなり、申し訳ありませんでした。
無事、動作いたしました。
本当にありがとうございました!これからも宜しくお願いします。

mitsu 11-02-28 (月) 22:16

Tenderfeel様

はじめまして。zeromailを使用させていただいております。
すばらしいフォームをありがとうございます!

質問なのですが、
入力確認画面で未入力の項目を非表示にする方法はありますでしょうか。
入力のあった項目のみを表示&確認メール送信させたいのです。
ご教授いただければ幸いです。
何卒よろしくお願い致します。

Tenderfeel 11-02-28 (月) 23:02

mitsu さん >

現バージョンでは残念ながらそういう機能はありません。
カスタマイズすれば出来なくもないですが、変更部分が多岐にわたるのでコメントでは説明しきれないです…。

使用例をお寄せ頂ければ何らかの対応が出来るかもしれません。

mitsu 11-03-01 (火) 14:37

Tenderfeel様

お忙しい中、
さっそくのお返事をありがとうございます!
お言葉に甘えて追記させていただきます。

使用例と致しましては、カート機能を使わないオーダーフォームとして使用しています。
約70個の商品名に、個数を入力する項目があり、
そこへ注文する項目にだけ個数を入力して送信というフローなので、
毎回大量の空項目が出来てしまい、大変な長さになってしまうのです。。
なにか良い手だてがあればご教授ください。
何卒よろしくお願い致します。

Tenderfeel 11-03-01 (火) 16:59

mitsu さん >

ショッピング目的で項目が70個もあるとEC向けCGIを使った方が早い気がしますが…(笑
予約フォームを作った時かなり項目数が多かったことがあるので、あれば便利そうですね。

フォームや確認画面で未入力の項目を非表示にするだけならJavaScriptでも出来ますが
メールには未入力項目も全て表示されてしまうので項目が多いと微妙だと思います。
スクリプトの対応は次以降のバージョンアップで、ということになるのですが
一足先にβ版をメールでお送りしますので、そちらを試してみてください。

mitsu 11-03-01 (火) 23:37

Tenderfeel様

β版の送信、ありがとうございます!
わざわざ作成していただけるとは思ってもみなかったので感激です!
動作は問題なく、思った通りのフォームを実現できました!
本当にありがとうございます。

1点だけ気づいた点ですが、
error.phpのheadタグのとじタグが抜けていました。

このたびはありがとうございます!
今後とも何卒よろしくお願い致します。

key 11-03-06 (日) 0:48

Tenderfeel様

はじめまして。zeromailを使わせて頂いております。ありがとうございます!

質問なのですが、
確認画面やエラー画面の枠内のサイズはどこで変更すべきなのでしょうか?

むりやり変更したところ、表のサイズはなんとか変更できたのですが、
表上の表タイトル(メッセージ)を表示してある部分が変更できず飛び出したままです。
その関係か、送信・リセットボタンが表の中央の位置に来ないのです。
(表タイトル部の中央に位置している状態です)

この状態を改善できる方法はありますでしょうか。
お忙しいところ申し訳ありませんが、よろしくお願い致します。

Tenderfeel 11-03-07 (月) 11:20

key さん >

デフォルトのCSSだと確認画面・送信完了画面メッセージのスタイルは
zeromail.css 229行目付近 .zeromail span.error と 240付近 .zeromail span.confirm です。
横幅の指定は特になく、marginとpadding で空白を作るようになっています。
なのでmarginの左右50pxをより小さくするか、横幅をpxで指定してmarginの左右をautoにすれば直ると思います。
ボタンは165行目付近の .zeromail .button でセンタリングしています。
ボタンをブロック要素にしない限りはそのままで大丈夫だと思います。

snow 11-03-08 (火) 20:47

はじめまして。
今回はじめてzeromailを利用させていただきます。
heteml サーバでは問題なく送信完了→管理者宛のメールも自動返信メールも届いたのですが
同じものをxserver に置いた所、送信完了画面まではすんなり行くものの、どちらのメールも届きません。
何か特別な設定が必要でしょうか?
サーバー側の問題なのかも知れませんが、こちら側で何か対応できるのであればお教えいただけると助かります。
どうぞよろしくお願い致します。

snow 11-03-09 (水) 17:47

すみません。上記の投稿ですが、xserver側より返答がありました。
試用期間でmail送信に制限をかけているとの事でした。
お騒がせして申し訳ありませんでした。

key 11-03-09 (水) 20:31

Tenderfeel様

こんばんは。
ご丁寧なご回答ありがとうございます!

おかげさまで思うとおりのサイズに変更することができました。
ボタンの位置なども特に問題なさそうです。

本当にありがとうございました。
今後ともよろしくお願い致します。

key 11-03-13 (日) 14:01

Tenderfeel様

こんにちは。
先日はありがとうございました。
度々申し訳ありませんが、質問させて頂きます。

送信・リセットボタンに、作成した画像を使用したいのです。

htmlにはで記述し、
cssには.zeromail button[type]あたりにbackgroundで指定したのですが
(こうしないとIE7の入力画面でボタンが表示されませんでした)、

IE8、FireFoxには問題なく表示されますが、
IE7のチェック画面・エラー画面にボタンが表示されません。

どのように対処すればIE7でも問題なく表示させることができるのでしょうか。
申し訳ありませんが、よろしくお願いいたします。

key 11-03-13 (日) 14:03

上記の文章の途中が表示されませんでしたので、再度お送りします。

5行目は「htmlはinput type=”image”で記述し、」
です。

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

Tenderfeel 11-03-14 (月) 9:36

key さん>

CSSに関することは該当するチュートリアルを探す方が早いですよ。(基本的に平日しか回答しないので)

確認画面とエラー画面はzeromail.php がボタンを表示しているので
直接変更するのではなくCSSで全て行った方が早いです。

この記事の方法が参考になると思います。
http://tenderfeel.xsrv.jp/css/630/

key 11-03-14 (月) 10:19

Tenderfeel様

お忙しいところありがとうございます!

教えて頂いたページ「フォームのボタンをスタイルシートで画像ボタンに変更する」や
「buttonタグにボタン画像をそのまま入れる」を試してみたのですが、
やはりIE7で確認するとcheck.phpとerror.php画面ではボタンが表示されませんでした・・・。

他にも手だてがないかいろいろ確認してみます!
ご回答いただきありがとうございました。

Tenderfeel 11-03-14 (月) 10:45

key さん>

ボタンのスタイルを変更する場合の修正箇所はzeromail.css 170~205行目で、内訳は次の通りです。
170行目→ボタンの横幅(共通)  175行目→ボタンのデザイン(共通) 189→マウスオーバー(共通)
193行目→送信ボタン 197行目→送信ボタンマウスオーバー 202行目→リセット・戻るボタン

193行目、202行目から始まる各ボタンのデザインを設定している場所に画像化するCSSソースをコピペすれば変更できます。

1. 送信画面のボタンをtype=”image”で画像にしても、確認とエラー画面はスクリプトが違うボタンを出力するので変わりません。

2. zeromail.cssでは属性セレクタを使ってボタンにスタイルを設定していますが、
IE7はDOCTYPEが無いとそれが有効になりません。
http://allabout.co.jp/gm/gc/23913/

3. display:inline-block を使うとIE7以下でボタンが消えます(未対応な為)

4. 同時に読み込まれているスタイルシートが影響を及ぼす場合があります

key 11-03-14 (月) 22:08

Tenderfeel様

こんばんは。
ご丁寧なご回答ありがとうございます!

ご教授頂いたことも含め、いろいろ挑戦してみたのですが、
どの方法でもやはりIE7ではボタンが表示されません。
(2と3はすごく期待したのですけれど;)

今回は入力画面と完了画面(html)のみ画像を使い、
チェック画面とエラー画面(PHP)には画像を使用しないことにしました。

お忙しい中、たくさんの解決方法をご提示頂き、本当にありがとうございました!
今後もよろしくお願い致します。

yoshy 11-03-18 (金) 17:16

今回はじめてzeromailを使わせて頂きます。
version 1.4.7をダウンロードしていますが、ラジオボタンの必須項目の設定が良く判りません。

過去ログで
ラジオボタンを必須にする場合はhiddenフィールドを使ってみてください。

とありますが、

大人
こども
問わず

上記のラジオボタンの選択を必須にする場合はどのように記述すればいいのでしょうか?

お忙しいところ恐縮ですがよろしくお願いいたします。

yoshy 11-03-18 (金) 17:34

うまくエンティティ化されませんでした。
すみません

過去ログで
ラジオボタンを必須にする場合はhiddenフィールドを使ってみてください。
<inputtype="hidden"name="require"value="name値,name値"/>
とありますが、

<inputtype="radio"name="taisyo"value="大人"/>大人
<inputtype="radio"name="taisyo"value="こども"/>こども
<inputtype="radio"name="taisyo"value="問わず"/>問わず

上記のラジオボタンの選択を必須にする場合はどのように記述すればいいのでしょうか?

お忙しいところ恐縮ですがよろしくお願いいたします。

Tenderfeel 11-03-18 (金) 20:36

yoshy さん >

<input type=”hidden” name=”require” value=”taisyo” />

です。

yoshy 11-03-18 (金) 23:59

早々のご回答ありがとうございます。

type=”radio” や選択された値はどう記述するのでしょうか?

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

yoshy 11-03-19 (土) 0:10

以下の様にするという意味ですね。

<input type=”hidden” name=”require” value=”taisyo” />
<inputtype="radio"name="taisyo"value="大人"/>大人
<inputtype="radio"name="taisyo"value="こども"/>こども
<inputtype="radio"name="taisyo"value="問わず"/>問わず

すみませんでした。

yoshy 11-03-19 (土) 9:28

Tenderfeel様、ご教授ありがとうございました。

送信テストを行ったところ
フォーム送信先に自動返信がされていないことが判りました。

色々調べたところ、サーバーがセキュリティの関係で
sendmailではなqmailを使っているとのことです。

フォーム送信先に自動返信させることはできないのでしょうか?
お忙しいところ恐縮ですがよろしくお願いいたします。

Tenderfeel 11-03-22 (火) 14:10

yoshy さん >

情報が少ないため何とも言えません。どこのサーバーでしょうか?
まず前提として、php_info()を実行した時表示される情報の中にあるsendmail_pathにURLが明記されていないとメール送信が行えません。
http://www.php.net/manual/ja/function.phpinfo.php

サーバーにエラーログに何かエラーが出ていないか、
サーバーのFAQなどにsendmailに関する設定について書かれていないか確認してみてください。

yoshy 11-03-25 (金) 17:48

ご返事が遅くなってすみませんm(__)m

sendmail_pathは以下です。
/usr/sbin/sendmail -t -i

色々試してみたところ
サーバーと同じドメインだと送信メールの控えが送られ
違うドメインからだと送信メールの控えが送られないことが判りました。

abc.ne.jp上でzeromailを使用して
yoshy@abc.ne.jpのドレスには送信メールの控えが送られ、
yoshy@def.ne.jpのドレスには送信メールの控えが送られません。

サーバーの仕様の問題でしょうか?

Tenderfeel 11-03-30 (水) 12:04

yoshy さん >

「他ドメイン宛の送信だけ出来ない」という症状はsendmailの設定に依存している可能性が高いです。
(ログを見れば何かしらメッセージが出ているのではないかと思いますが)
sendmailの設定で他ドメインへの送信が不可になっているかどうか
サーバーの管理者に問い合わせてみてください。

shunshuu 11-04-01 (金) 17:05

いつもお世話になっております。管理画面機能を使っていて2つほど質問がでてきました。

1.自分が使っていなかったので気が付かなかったのですが、
IEだとフォーム閲覧・投稿は普通にできますが、
管理画面からログインしようとするとパスワードを入れてもログインすることができませんでした。
他のブラウザだと問題なくログインできます。
変更点はadminディレクトリのパーミッションを707にしているぐらいです。

2.複数行入力のテキストエリアに、< や > (本来は半角です)などでかっこが入っている文章があると
管理画面からCSVファイルをDLしたときに、&lt; や &gt; (本来は半角です)に
変換されて表示されてしまうのですが、これはDL後に置換で直すしか方法はありませんでしょうか。

shunshuu 11-04-01 (金) 17:18

すいません、先ほどの1.のほうですが、自分のところでIEで試したらログインできました。
ただ別のPCで試したところログインできず。。。バージョンもIE8で同じなので
何が関与してるから不明ですので、こちらはもう少し調べてみます。。。

もんもん 11-04-10 (日) 9:02

バージョン1.4使用中です。
ログ記録件数が15000件を超えると
ログ消失が起こりやすくなっています。
過去に2回ほどログが全て消えてしまいました。

管理画面でバックアップをかんたんに作成できるようできませんか?
また、3000件を超えるとログイン後のログを一覧で表示で読み込みに非常に
時間がかかってしまいます。表示件数を指定することはできませんでしょうか?
素晴らしいスクリプトなので改善を期待しております。

yoshy 11-04-12 (火) 13:18

11-03-25 (金) 17:48に質問したzeromailで「他ドメイン宛の送信だけ出来ない」件ですが

サーバー管理者への問い合わせに時間がかかってしまいました。

管理者からの返答では

ユーザが入力したアドレスが同じドメインの場合だと同じサーバー内でメールをやり取りしてしまうため届いたのですが、
違うドメインになると相手側のメールサーバで「localdomain.localdomain」というドメインは存在しないのではじかれてしまいます。

対処方法としては、メール送信のプログラムでエンベロープフロムに管理者のアドレスを
設定するように記述してください。
メールサーバーがqmailになるので、qmailで設定されるような記述にする必要があるのでご注意ください。

という回答でした。

envelope Fromに管理者のアドレスを設定というのはどのようにすればいいのでしょうか?

お忙しいところ恐縮ですがよろしくお願いいたします。

Hiro 11-04-13 (水) 22:22

zeromailで
<input name="kounyuusya" type="text" size="50" />
というようなテキストフィールドの入力値のことですが
半角文字では入力内容の確認に表示され
_reqの必須確認もされるのですが
全角文字だと表示や必須確認がされないという状態です。

何が原因なのでしょうか?
お忙しいところ恐縮ですがよろしくお願いいたします。

Tenderfeel 11-04-14 (木) 12:49

現在転職に関る引越し作業が大詰めになっており、サポートに携われない状況です。
特にバグと疑われる所作につきましては原因究明に時間がかかるので、
直ぐ対応することが困難となっております。申し訳ありません。

shunshuu さん>
1の件は他のスクリプトでもログインが出来ないという現象が発生することがあるんですよね…
何が原因かは具体的に分からないので此方でも確認してみます。
2については出力時にデコード処理入れるようにします。

もんもん さん>
管理画面機能はリクエストで実装したものでして、ぶっちゃけ実験段階のオマケみたいなものだったりします。
私が元々「管理画面なんて要らないでしょ」という考え方をしていたので、どのような使い方をされるのか
報告を聞いて都度対応していくつもりでいたのですが、1万件もログが保存されるケースがあるとは正直驚いております。
回避する策は色々とあるのですが、今上記理由で時間が取れないので対応は暫く後になってしまいます。
ログ保存先が普通のファイルで容量が多くなると色々と問題が出てきますので、こまめにログのダウンロードを行ってください。

Hiro さん>
バグかもしれません。が、確認してみないと何とも言えません;
フォームがあるページの文字コードはUTF-8以外になっていたりしますか?

yoshy さん>
zeromail.php を次のように修正してみてください。

525行目
@mb_send_mail(MAILTO,$mailsubject,$message,$mailheader);

@mb_send_mail(MAILTO,$mailsubject,$message,$mailheader, “-f”.MAILTO);

572行目
@mail(MAILTO, $subject, $msg, $mailheader);

@mail(MAILTO, $subject, $msg, $mailheader, “-f”.MAILTO);

607行目

@mb_send_mail($formitem['email'], REPSUBJECT, $replymessage, $replyheader);

@mb_send_mail($formitem['email'], REPSUBJECT, $replymessage, $replyheader, “-f”.MAILTO);

su 11-04-14 (木) 13:12

ZEROMAILを拝見し、とても分かりやすく使いやすくまとめてくださっていて使ってみたいと思いました。
添付ファイルにエラーがあり(ファイルサイズが大きかったりなど)、エラー画面から入力画面に戻ったときに
他の項目はそのまま残して、添付ファイルのみ削除することは可能でしょうか?
サンプル見る限り、winではファイルが削除されていますが、macではファイルが残ります。
お忙しい中、大変恐縮ですがよろしくお願い致します。

Tenderfeel 11-04-14 (木) 19:08

su さん>

>添付ファイルにエラーがあり(ファイルサイズが大きかったりなど)、エラー画面から入力画面に戻ったときに
>他の項目はそのまま残して、添付ファイルのみ削除することは可能でしょうか?

ディレクトリのことかフォームの入力欄のことか分からないのですがどっちの事でしょうか?
フォームの入力欄のことであれば、履歴で戻っているだけなので値が残るのはブラウザの仕様ということになります。

su 11-04-16 (土) 23:13

Tenderfeelさま
お返事ありがとうございます。
フォームの入力欄のことです。
ブラウザの仕様によるということなのですね。。。
winだと問題ないのですが、macのFirefoxとSafariだと、
画像のサイズが大きくてエラーが起こり、入力画面に戻ってきても
画像が登録されたままになっていて削除できないのです;
何かいい方法はないでしょうか。
画像の選択ボタンのとなりにクリアボタンを
設置するのは簡単なことなのでしょうか?
色々調べては見たもののphp初心者なもので。。
大変恐縮ですが、どうぞよろしくお願いいたします。

yoshy 11-04-23 (土) 11:12

こんにちは引っ越しでお忙しいところご回答頂きありがとうございます。
ご指示のように525行目、572行目、607行目の変更を行ったのですが
送信されません。

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

さらさ 11-04-29 (金) 1:51

素晴らしいプログラムを有り難うございます。
先ほどダウンロードし、設置を試している所ですが
full_table内のcontact.htmlにおいて
生年月日の日付のとなっており
整形用の記述

と相違を起こしているようです。

また、
がうまく作動せず
この一行を消すと動作しているようです。
もう少し検証します。

ES 11-05-20 (金) 16:01

お世話になっております。フォーム送信画面で登録アドレスや名前を
表示させたいのですが、可能でしょうか?

○○様

問合せの控えを登録時のアドレスxxx@xxx.jpへ送信致しました。

さんた 11-06-22 (水) 12:40

こんにちはサンタです。zeromail使わせていただいて、設置途中です。すみません。ローカルでは問題なのですが、サーバーでUPしてブラウザで確認すると、table のthの部分、「名前」「住所」「Email」のTable HeaderのCSS,
zeromail.cssにて、
.zeromail tbody th{
width:130px;に致しましたが、ローカルでは幅が広くなり反映されるのですが、サーバーにUP致しますと、貴サイトのdemoのように、20pxぐらいに狭くなってしまいます。どのようにすれば、cssの130pxのまま映されますでしょうか?
よろしくお願い申し上げます。
失礼致します。

Tenderfeel 11-06-22 (水) 16:13

さんた さん>
別のスタイルシートを読み込んでいる場合、そのスタイルルールの影響を受けている場合があります。
(width:20pxくらいにしているスタイルルールが他にあるならその可能性が高い)
CSSの優先順位がどのように決まるかについては http://tenderfeel.xsrv.jp/css/75/ をご覧ください。

手っ取り早く上書きしたいのであれば !important が有効です。
width:130px !important;

santa 11-06-22 (水) 20:08

Tenderfeel さま
お忙しい中、御親切にありがとうございます。感謝です。さて、どうも、chrome12.07.のバグのようです。他のブラウザでは、FF、opera,safari,ie9でも大丈夫でした。でも、うーん、chromeできちんと表示させたいのですが、、、なにか方法は思いつきませんでしょうか?width:25%も色々触らせていただきましたが、chromeのみ適応自体出来ませんでした。色などは変化いたしますが、widthだけが効きません。chromeのアップデート待ちでしょうか?もしよろしければ、ヒントだけでも頂けましたら、とても嬉しいです。
http://www.bashar-wakuwaku.com/mail_form/contact.html

カレンダー共々、ありがとうございます。

santa 11-06-22 (水) 21:16

Tenderfeel さま

さんたです。自己解決いたしました。
chrome12での現象?を
white-space:nowrap
で解決いたしました。
ありがとうございました。またどうぞ宜しくお願いいたします。

santa 11-06-23 (木) 6:13

Tenderfeel さま

さんたです。
連続で失礼いたします。著作権表示についての確認です。読ませて頂きました。
ZeroMail ContactFormの文字を変更の上、ZeroMail ContactFormのはhiddenにて、ソースコードで見ることができるように考えております。
フォームの色を変更致しました。

規定内でしょうか?
宜しくお願いいたします

santa 11-06-23 (木) 6:59

Tenderfeel さま

なんどもすみません、本当に。。。失礼を承知の上で。
一番肝心である、送り先のメールアドレスの設定はどちらにあるのでしょうか?<input タグのmailto:でするものと思っておりました。
zeromail.phpのところを修正するのでしょうか?
すみません、御教授下さい。
宜しくお願いいたします
失礼いたします

santa 11-06-23 (木) 7:04

解決いたしました。
init.phpなのですね。CHANGELOG.txtからきちんと読むべきでした。勉強になりました。失礼致しました。

santa 11-06-23 (木) 7:31

すみません。やはり、init.phpにメールアドレスを書き換えても、自分の方へ届きません。設定
tsurudasanta@gmail.com(mainで使っております)
tsuruda@bashar-wakuwaku.com(サブで使っているものを試してみました)
すべて保存をし、FTPで転送いたしますが、自分へ、メールが届きませんでした。

もしよろしければお願い申し上げます。
失礼致します。

Tenderfeel 11-06-23 (木) 10:11

さんた さん>

著作権表記についてはこちらに書いておりますが、
http://zeromail.webtecnote.com/template.php#copyright
必須なのは配布サイトへのリンクとZeroMailというテキストです。サンプルのタイトル等は変更して構いません。

メール転送については「送信できない」という結果情報だけだと解決策は提供出来ません。

・CGI によるメール送信が許可されている
・PHPの mail と mb_send_mail 関数が使用できる

上記2点が動作に必須ですが、これがクリアされているのであれば
サーバーのエラーログに送信エラーが出ていないか確認してみてください。
(エラーログの確認の仕方はサーバー管理者または運営者へお尋ねください)

サーバーにインストールされているメール転送エージェントによっては、相性が悪くて送信出来ない場合があります。
(現時点で未解決なのはqmail です)

さんた 11-06-23 (木) 11:34

このような記述がドメインキングに御座いました。失礼致します。

sendmailはインストールされておりませんが、qmailの機能でsendmailがご利用いただけます。

sendmailのパス : /usr/sbin/sendmail

sendmailプログラムをエミュレートしたものであるためsendmailプログラムへ渡している
引数の内容によってはメール送信が行えない場合がありますのでご注意ください。

sin 11-07-07 (木) 18:16

はじめまして。
素晴らしいスクリプトありがとうございます。

アップしているサーバー側の問題かと思いますが
最新のバージョンを使用した場合、

■通常版
入力フォーム→確認画面(エラー):送信データがありません。
となりメール&添付ファイルを送信することができません。

■AJAX
では メールは遅れるのですが、添付ファイルは送られてきません。

通常版でも、ごくまれに確認画面が表示されることがあるのですが
入力した内容が表示されず、空のセルになっています。

恐れ入りますが、考えられる原因などございますか?

Tenderfeel 11-07-12 (火) 17:09

さんた さん >
qmail に関しては送信トラブルが原因不明のまま未解決となっているので、
他のメールフォームスクリプトを探した方が早いと思います。申し訳ありません。

sin さん >
Ajaxなら送信出来るということはセッションに問題があるのかもしれません。
(なおAjax版は添付ファイル送信に対応しておりません)
サーバーがセーフモード環境でPHPを動かしているかどうか確かめてみてください。
また、サーバーがエラーを吐いていないかログを確かめてみてください。

もしセーフモード環境でセッションに関するエラーが出ていたら素の状態で動かすことは困難ですので、
セーフモードの動作を保証しているスクリプトか、Perl版のメールフォームスクリプトをお探しになる事をお勧めします。

sin 11-07-13 (水) 17:06

Tenderfeel 様
返信ありがとうございました。

環境なのですが
PHP5.1.6 safe_mode Off
でした。
zeromail.phpの$formitemをバラして個別に設定すると動作するのですが
バラさない方法はございませんでしょうか。
ご教授お願いいたします。

Tenderfeel 11-07-13 (水) 18:30

sin さん >

前のレスにも書きましたがサーバーのエラーログを確認してください。
zeromailに関するphpが吐いているエラーがあったらコメントかメールで送ってください。

pipipi 11-07-27 (水) 17:43

すばらしいスクリプトの公開ありがとうございます!
早速利用をさせていただきたいのですが、
未入力項目の送信スキップ機能を利用する際、
ini.phpファイル内の
define(’ZM_EMPTY_VALUE_SKIP’, false);
の部分をtureに変更以外に何か作業は必要なのでしょうか?
上記作業で動作しなかったのもので….。
ご教授よろしくお願いいたします m(_ _)m

mmbb 11-10-03 (月) 19:12

今回はじめて利用させていただき非常に便利で感謝しております。
その中で1点不明な点があり質問させて頂きます。(初歩的な内容でしたら失礼致します)

input type="passward" />
の場合、

は使えないのでしょうか?

mmbb 11-10-03 (月) 19:36

すいません
文面がおかしなことになりましたので
再掲申し上げます。

は使えないのでしょうか?

Tenderfeel 11-10-03 (月) 20:23

mmbb さん>
メタ文字を含むソースコードを送信される場合はお手数ですがエンティティ化してから投稿してください。
意味が分からない場合はググってください

mmbb 11-10-04 (火) 14:53

投稿方法について失礼致しました。

添付ファイル機能に関して
添付ファイル自体は問題なく送付出来る状態になったですが
他のフォームの要素が全て記号の羅列のような状態になってしまいました。

メーラーのエンコードも全て見てみましたが変わらずでした。
何か情報をお持ちでしたら、ご教授いただけますと幸いです。
宜しくお願い致します。

Tenderfeel 11-10-04 (火) 22:44

mmbb さん>
コメントの内容だけではなんとも言えません。
>他のフォームの要素が全て記号の羅列のような状態になってしまいました。
ここをもっと具体的に書いてください。

mmbb 11-10-05 (水) 16:59

Tenderfeel さん>
お返事頂きありがとうございます。

文字化けは下記のような状態です。
メールアカウントによっては、メッセージなし、添付画像なしで
届くこともあります。(スパム判定か何かの関係でしょうか?)

添付画像は、問題なく受信出来ているメールアカウントもありますが
その場合は、下記のようにその他のフォーム要素が文字化けた状態で届きます。

何か考えられる部分がございましたら、ご教授いただけますと幸いです。

どうぞ宜しくお願い申し上げます。

GyRCIVpFUE8/JTMlcyU1JWslPyVzJUg/PTl+IUMbKEJXT1JLGyRCJSIlcyU1ITwhWxsoQiAKGyRC
KCEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEo
ISghKCEoISghKCEoISghGyhCChskQiIjRVBPPzxSTD4bKEIKCgobJEIiI0JlST08VEw+S3QkT0M0
RXY8VEw+GyhCChskQjBCRj

natanea 11-10-14 (金) 16:38

すばらしいスクリプトで是非設置したいのですが
うまくいきません。
連日連夜の「internal~」で根負けしてしましました。

ただ、このスクリプトには諦めがつきません。
そこで代行設置を依頼したいのですが、可能でしょうか。
(急いで設置したい理由がありまして)

お返事よろしくお願いします。

Tenderfeel 11-10-14 (金) 19:00

mmbb さん>
ファイルを添付する時にはbase64で文字列にエンコードして
本文の文字列と添付ファイルの文字列を1つのメールドキュメントとして送信します。
で、その文字列には見覚えがあるので、おそらくエンコードした文字列だと思います。
考えられるのは、送信時にエンコード失敗したか、文字コードの問題
あるいは受信時にサーバーかクライアントでウイルススキャンする時に壊れたか、です。
前者であればサーバーのエラーログを見れば何かしらエラーが出ていると思うんですが
後者の場合にはウイルススキャンしているソフトをオフにして確認してみるしか
ありません。

natanea さん>
気に入って頂いてありがとうございます。
まずサーバーにインストールされているMTAが
sendmailなのかqmailなのか確認してみてください。
qmailだったら諦めて他のスクリプトを探してください。
sendmailだったらサーバーのエラーログを見れば原因が分かる可能性があります。

あと代行設置は行っていません。
(トラブルとか起きたら面倒なので)

Tenderfeel 11-10-14 (金) 19:03

サーバーのエラーログをメールで送って頂ければ
何かしらお返し出来ると思います。

natanea 11-10-15 (土) 21:48

Tenderfeel さん>
ご返答ありがとうございます。sendmailは使えるようです。

物凄い初歩的なご質問をさせていただきます。(^_^;)
レンタルサーバー(ショップサーブ)に問い合わせたところ
「phpファイルはcgi-binにアップ」とだけ返答いただきました。
その他、返答いただけなかった質問ですが

zeromailフォルダごと「cgi-bin」アップするのでしょうか。
または、拡張子が「.php」のみアップするのでしょうか。

因みにどちらも試した場合の「internal~」のエラーは
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@estore.co.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

よろしくお願いします。

natanea 11-10-15 (土) 23:36

何度もすみません。

ショップサーブのサーバーは
「MTAはqmailを使用」とのことです。。。

諦めます;;
ありがとうございました。

tysn 11-11-04 (金) 15:58

色々探していて、当スクリプトを見つかり、すばらしい機能に感動しておりますことから、
今回利用させていただこうと思っております。
しかしながら、1点だけ上手くいきません。

内容ですが、先に質問されていたmmbb様とほぼ同じ内容(文字化けしているテキストも同じ形式)です。
最新版(1.4.7)において、添付ファイル機能を使用し、かつpoolしない設定では、受信メールが文字化けし
(送信者への自動返信は文字化けしません)
それ以外では問題なく動きます。
mmbb様への回答にありましたように、エラーログやウィルスソフトも見てみたのですが、どうもわからず、
Ver1.3.1 → 1.4 → 1.4.5 と同様にテストしたところ、すべて文字化けは発生いたしませんでした。

とりあえず、1.4.5を利用させていただこうと思っているのですが、
最新版とのソースの変更内容は確認させていただいているのですが、どうしても最新版では解決できないため、
お忙しいとは思いますが、ご教授いただけますと幸いです。
どうぞ宜しくお願い申し上げます。

Tenderfeel 11-11-05 (土) 0:25

ちなみに何度も書いているサーバーのエラーログというのは
Apatchが吐くエラーのことで、500とか400みたいなブラウザで確認できるエラーのことではありません。
サーバーのエラーログだとエラーを出したスクリプトの名前や行が書いてあるので、問題解決のヒントになるのです。

tysnさん>
同じサーバー環境を用意しなければその問題はまず解決できないと思われます。

・設置して問題が発生したサーバー名
・受信に使用したメールクライアント
・サーバーのエラーログ(ファイルまたはコピペ)

メールかコメントで以上お寄せください。
残業まみれな生活を送っているので、解決までには時間が掛かると思います。
お急ぎでしたら他のメールフォームをお使いいただく方が早いかもしれません。

Vittoriano 11-11-08 (火) 15:22

すばらしいプラグインをありがとうございます。

実装を試しているんですが、送信完了後、ページトップへ戻ってしまうのを防ぐにはどの部分をカスタマイズしたらよいでしょうか。
少し長めのページの下部に問い合わせフォームをつけたいと思っていまして、送信完了するとページ上部がぱっと表示される、という症状です。

Tenderfeel 11-11-09 (水) 9:48

Vittorianoさん>

フォーム→確認画面→送信完了画面 というページ遷移を行うと読み込みが生じるので
送信完了時にページトップへ戻ってしまうのはWebページである以上仕方がないことです。
Ajaxを使えばその場にずっと留まらせられますが、ファイルの添付は未対応なので出来なくなります。

tysn 11-11-10 (木) 11:07

Tenderfeel 様

素早いご返答ありがとうございます。
私の方が遅れてしまい、申し訳有りません。

・設置して問題が発生したサーバー名
  → heteml(php5.2)
・受信に使用したメールクライアント
  → outlook express と Thunderbird
・サーバーのエラーログ(ファイルまたはコピペ)
  ・・・hetemlはApatchが吐くエラーが見れないとのことです。(hetemlの回答)

上記環境でしたが、エラーログが取れません。
あまりお時間を頂くのも申し訳ありませんので、とりあえず1.4.5を使用させていただきます。

みや 11-11-17 (木) 9:52

いつも便利に使わせていただき大変感謝しています。
添付ファイルの容量について質問です。
今までは”MAXSIZE”の設定を「1200」としていたのですが、もう少し大きい容量が必要となり、「1200」の値を「5000」に変更しました。

変更した箇所は
init.php 201行目 define(”MAXSIZE”,5000);
zeromail.php 349行目 if($filesize >= MAXSIZE*5000 ){ //ファイルサイズ

の2箇所のみです。
(「5000」が以前は「1200」でした)

この状態でファイルを添付すると、
1MB程度のファイルは今まで通り転送可能ですが、
3MB程度のファイルは「ファイルサイズが大きすぎます」のエラーメッセージが出て転送できません。

どのように修正したらよろしいでしょうか?

稚拙な質問かもしれませんが、ファイルを色々みてもわからず。。。
何卒よろしくお願いいたします。

みや 11-11-18 (金) 11:38

昨日ご質問させていただいた者です。
その後よくよく確認したところ、サーバーに転送の容量制限があることが判明し、そちらの容量を大きくすると問題なく転送できるようになりました。
よって、今回質問させていただいた内容について、原因はこちらの環境のためでしたので、お騒がせしてすみませんでした。
メールでもご質問をさせていただいていたのですが、そちらについてもご失念ください。
今後ともよろしくお願いいたします。

ベル 12-01-21 (土) 1:07

Zeromail使わしていただこうと思いダウンロードさせていただきました。
有難うございます。
質問ですが、管理者宛てのメールのヘッダの差出人(From)が
ZeroMail
と出るのは仕様でしょうか?
ユーザー宛のメールの差出人(From)の方はinit.phpで設定できるよですが、
管理者宛てのメールでも変更可能ということでしたら教えてください。
よろしくお願いいたします。

Tenderfeel 12-01-21 (土) 16:15

ベルさん >

以前タイトルにお客さんの名前を出したいという要望を受けて1.4.5で置換機能を入れましたが
差出人についてはリクエストを受けたことが無かったためノータッチです。
メールヘッダはzeromail.phpで作っているので、直接変更すれば変えることは出来ますよ。

kota 12-01-24 (火) 22:19

はじめまして。
今朝とても素晴らしいこちらのメールフォームを見つけて、興奮して一日中いじってました。
当方、ロリポップのサーバーを使ってるのですが、添付ファイル機能がどう頑張っても実現致しません。
確認画面の時に/upfile/の中にある事は確認出来るのですが、送信すると0byteになって届きます。
使ってるのは問い合わせフォーム(フル)です。これでそういう状態なので、初期のフォームに
フルから移植したfileのinputフォームを追加すると、サーバーには送られず、ファイル名だけが
送信されてきます。
この状態でもzeromail.phpの567行目くらい//ファイル削除の行をコメントアウトして、/upfile/から
落として使おうと考えてたのですが、是非このフォームの機能をフルに使いたいと思い書き込み
させて戴きました。
お忙しいとは思いますが、お時間がありましたら御教示ください。
最後になりましたが、このような類稀なる素晴らしいフォームを公開してくださいありがとうございます。

kota 12-01-24 (火) 23:32

ファイル名が送信される方はenctype=”multipart/form-data”で自己解決しました。すみませんでした。

kota 12-01-25 (水) 0:59

連投申し訳ございません。
define(’FILEPOOL’,true);で運用可能でしたので、このまま使いながら解決策を探そうと思います。

Tenderfeel 12-01-27 (金) 11:25

kota さん>
ロリポップなので多分move_upload_fileした後にファイルを読み込む段階で
パーミッションエラーが出てるんじゃないかな、と思います。
(Apatchのログ見ないと確証は持てませんが、パーミッションのトラブルが多いそうなので)

・一時ファイルが置かれるupfileディレクトリのパーミッションを707にする。
・chmodでパーミッション変更する(a)か、move_uploaded_fileをrenameやcopyに置き換える(b)

a. zeromail.php 361行目付近 move_uploaded_fileの後にchmod追加
chmod(UPLOADPASS.$filename, 0606);

b. zeromail.php 361行目付近 move_uploaded_file をrenameに変更
rename($tmp_name, UPLOADPASS.$filename);

kota 12-01-28 (土) 0:03

Tenderfeel さん
せっかくお答えいただいたのにすみません。
/upfile/ →707
a)move_uploaded_file($tmp_name, UPLOADPASS.$filename);chmod(UPLOADPASS.$filename, 0606);
b)rename($tmp_name, UPLOADPASS.$filename);
のどちらも試してみましたが、送られてきたJPEGは0byteでした。
確認画面では同じようにupfileに存在を確認でき、開く事も出来ます。
ですが、define(’FILEPOOL’,false);にすると0byteになって送られてきます。
そしてメール本文が完全に空白になってしまいます。
一昨日に一度だけJPEGが正常なサイズで送られて来たのですが、その時はメール本文が文字のコードのようになっていて(JPEGをバイナリで開いたような)、入力した文字は消えていました。
何かやり方を間違ってたかもしれないので、また自分でも色々と試してみます。
貴重なお時間を割いてアドバイスくださりありがとうございました。

kota 12-01-28 (土) 0:17

追記ですみません。
chmod(UPLOADPASS.$filename, 0606);を追加した時は
/upfile/の中のJPEGはパーミション606にちゃんとなっていました。

Tenderfeel 12-01-28 (土) 0:44

kota さん>

やはりサーバーのエラーログを確認したほうが早いですね。
zeromailがエラーを吐いている場所をメール添付で送っていただけたら
何かしら対処法がわかるかもしれません。

オビワン 12-02-09 (木) 4:26

お世話になります。ファイル添付可能なメールフォームを探していたところ、カスタマイズ機能が素晴らしいzeromaiを拝見し、ぜひ使用させていただこうとテスト中なのですが、以下のようなエラーが発生しまして、いろいろやっているのですが解決できず、ご質問させていただきます。何かお判りになれば、お手すきの際にご教示いただければ助かります。
+++++++++++++++
●エラー内容
確認画面で「前のページに戻り、入力エラーを修正してください。」というエラーが表示され、送信できません。
●カスタマイズ作業内容
テンプレート「full_table」のcontact.htmlから、使用しない項目の入力フィールドを削除(<tr>—</tr>ごと削除)。
init.phpの「inputs」設定を、使用するフィールドのみに変更。
●サーバ環境は下記です
CentOS6/Apache(2.2.15)/PHP(5.3.3)/postfix(2.8.4)
——
・入力項目は全部で8項目に変更しています。このうち、必須項目だけを入力した場合も、全項目の入力を行った場合も、いずれも「前のページに戻り、入力エラーを修正してください。」というエラーが表示されます。
・init.phpの「ZM_EMPTY_VALUE_SKIP」設定を、falseにした場合もtrueにした場合も同様のエラーとなります。
・Apacheのエラーログには、エラーは出力されていません(必須でない項目を未入力にした場合に「PHP Notice:Undefined index」が出力されますが、これは上記のエラーとは関係がないように思います)。
・「full_table」のcontact.htmlをそのまま使用し同梱されているinputs.phpの項目をそのまま設定した場合は、正常な画面遷移で終了し、init.phpに設定した内容でメール送信が正常に行われます。
※ただ、この場合添付画像は正常に表示しますが、入力フォームの文字が全て文字化けします(別コメントのmmbb氏と同様の現象です)。Apacheのエラーログで出力されるのは「Undefined variable: MAILCODE in /var/www/html/inquiry/zero/zeromail.php on line 692, referer: http://www.************/inquiry/zero/check.php」なのですが、こちらについても何かお判りになれば教えていただければ助かります。
+++++++++++++++
以上です。突然の長文質問で恐縮ですが、よろしくお願いします。

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://tenderfeel.xsrv.jp/zeromail/trackback/
Listed below are links to weblogs that reference
ZeroMail from WebTecNote

Home > ZeroMail

最近の投稿
最近の修正
Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top