Help

寄せられた質問の中から改造が必要なものをまとめてみました。バグレポートや実装済みの要望は省略しています。

選択されたチェックボックスの値の並べ方を変える

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

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

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

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

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

Answer

zeromail.php(ver1.4)の157行目付近にPOSTされた配列を処理している下記ソースがあります

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

この"\n"を変更すれば改行から別の文字列に変えることが出来ます。

SSLの使用は可能でしょうか?

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

Answer

共有SSLはhttps外からのファイル読み込みを禁止にしている場合があるので、
httpサーバーにあるファイルを利用していると鍵が割れた状態になります。
使用するファイルを全てhttps以下に設置すれば動かす事は出来ると思います。

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

お名前.comの共用サーバーで控えのメールだけ送信がされない

お名前.comの共用サーバーで使用しているのですが
控えのメールだけ送信がされません。

init.php内の

//自動返信
//trueにした場合はフォームでのチェックの有無関係なく返信する
//下記設定に関係なくメールアドレスが必須入力になる
define(’REPLY’,true);

この部分をtrueにしてもfalseにしても同様でした。

お名前.comのヘルプにて

【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)

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

と記述があるのですが、特定サーバーでは別途

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

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

Answer

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

総文字数チェックを追加する

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

Answer

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

zeromail.php(ver1.4)の291行目 本文禁止語句チェックの条件下(301と302行の間くらい)に追加

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