KENT-WEB サポートコーナー 過去ログ [ 0165 ]


記事No: 11926
投稿日: 2013/05/31(Fri) 11:54:14
タイトルsakuraサーバでpostmailメールフォーム複数設定
ID情報: xulan
投稿者: xulan
URLhttp://www.okta-osaka.com/postmail/postmail2.cgi?checkmode

HPページで2つのpostmailフォームを作っています。
1つ目はスクールの申込フォーム、2つ目はセミナー申込フォームです。
使用しているサーバはsakuraです。
postmailのバージョンはV.6.71です。

1つ目はうまく動作していますが、2つ目は500internet errorになっています。
動作は
http://www.okta-osaka.com/postmail/postmail2.cgi?checkmode
で確認できます。

postmailの構成は
public_html / index.html (トップページ)
|
+-- postmail / postmail.html ... 1つ目送信フォーム
| postmail2.html ... 2つ目送信フォーム
| postmail.cgi ... 1つ目cgiファイル
  | postmail2.cgi ... 2つ目cgiファイル
| check.cgi ...
| init.cgi ... 1つ目設定ファイル
| init2.cgi ... 2つ目設定ファイル
|
+-- lib / base64.pl
| | Jcode.pm
| |
| +-- Jocde / *.pm
|
+-- data / log.cgi [606]
| ses.cgi [606]
|
+-- tmpl / mail.txt
reply.txt
conf.html
thx.html
err1.html
err2.html


postmail2.cgi
#!/usr/local/bin/perl

# モジュール実行
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib './lib';
use CGI::Minimal;
use Jcode;
require './lib/base64.pl';

# Jcode宣言
my $j = new Jcode;

# 設定ファイル認識
require "./init2.cgi";  -->ここを変更
my %cf = &init;


init2.cgi

#===========================================================
# ▼基本設定
#===========================================================

# 送信先メールアドレス
$cf{mailto} = 'seminar@okta-osaka.com'; -->ここを変更

# sendmailのパス【サーバパス】
# → プロバイダの指定を確認のこと
$cf{sendmail} = '/usr/sbin/sendmail';

# sendmailへの-fコマンド(プロバイダの仕様確認)
# 0=no 1=yes
$cf{send_fcmd} = 0;

# 文字コード自動判別(0=no 1=yes)
# → フォームの文字コード判別を行う場合
# → フォームがShift_JISの場合は「0」で概ねOK
$cf{conv_code} = 0;

# フォームのname値の置き換えをする場合
# → 英字のname値を日本語に自動的に置き換えます。
# 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」
$cf{replace} = {
'name' => 'お名前',
'email' => 'メールアドレス',

};

# 最大受信サイズ(Byte)
# → 例 : 102400Bytes = 100KB
$cf{maxdata} = 102400;

# 送信者へのメール返信
# 0=no 1=yes
$cf{auto_res} = 1;

# メール件名(初期値)
$cf{subject} = '次世代貿易スクールお申込みフォーム';

# メール件名の外部指定
# → 複数のフォームメールで運用する場合、タグで件名指定する
$cf{multi_sub} = {
1 => '資料請求フォーム',
2 => 'お問い合わせフォーム',
3 => 'ご感想連絡フォーム',
};

# 返信向けメールタイトル
$cf{sub_reply} = 'お申込みありがとうございます';

# 本体プログラム【URLパス】
$cf{mail_cgi} = './postmail2.cgi';  -->ここを変更

# ログファイル【サーバパス】
$cf{logfile} = './data/log.cgi';

# セッションファイル【サーバパス】
$cf{sesfile} = './data/ses.cgi';

# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = './tmpl';

# セッションの許容時間(分単位)
# → 確認画面表示後、送信ボタンを押すまでの時間
$cf{sestime} = 5;

# 送信後の形態
# 0 : 完了メッセージを出す.
# 1 : 戻り先 ($back) へ自動ジャンプさせる.
$cf{reload} = 0;

# 送信後の戻り先【URLパス】
$cf{back} = '../index.html';

# フォームのname値の正当性をチェックする
# → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK
# 0=no 1=yes
$cf{check_key} = 1;

# 同一IPアドレスからの連続送信制御
# → 許可する間隔を秒数で指定(0にするとこの機能は無効)
$cf{block_post} = 60;

# 送信は method=POST 限定 (セキュリティ対策)
# 0=no 1=yes
$cf{postonly} = 1;

# ホスト名取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$cf{gethostbyaddr} = 0;

# アクセス制限(複数あれば半角スペースで区切る、アスタリスク可)
# → 拒否ホスト名又はIPアドレスの記述例
# (前方一致は先頭に ^ をつける)【例】^210.12.345.*
# (後方一致は末尾に $ をつける)【例】*.anonymizer.com$
$cf{denyhost} = '';

# 禁止ワード
# → 投稿時禁止するワードをコンマで区切る
$cf{no_wd} = '';

#===========================================================
# ▲設定完了
#===========================================================


どこの設定がまずいか、ご教授のほう宜しくお願いいたします。


記事No: 11930
投稿日: 2013/05/31(Fri) 20:06:11
タイトルRe: sakuraサーバでpostmailメールフォーム複数設定
ID情報: kent
投稿者: KENT

> HPページで2つのpostmailフォームを作っています。
> 1つ目はスクールの申込フォーム、2つ目はセミナー申込フォームです。
> 使用しているサーバはsakuraです。
> postmailのバージョンはV.6.71です。
>
> 1つ目はうまく動作していますが、2つ目は500internet errorになっています。
> 動作は
> http://www.okta-osaka.com/postmail/postmail2.cgi?checkmode
> で確認できます。
>
> postmailの構成は
> public_html / index.html (トップページ)
> |
> +-- postmail / postmail.html ... 1つ目送信フォーム
> | postmail2.html ... 2つ目送信フォーム
> | postmail.cgi ... 1つ目cgiファイル
>   | postmail2.cgi ... 2つ目cgiファイル
> | check.cgi ...
> | init.cgi ... 1つ目設定ファイル
> | init2.cgi ... 2つ目設定ファイル
> |
> +-- lib / base64.pl
> | | Jcode.pm
> | |
> | +-- Jocde / *.pm
> |
> +-- data / log.cgi [606]
> | ses.cgi [606]
> |
> +-- tmpl / mail.txt
> reply.txt
> conf.html
> thx.html
> err1.html
> err2.html
>
>
> postmail2.cgi
> #!/usr/local/bin/perl
>
> # モジュール実行
> use strict;
> use CGI::Carp qw(fatalsToBrowser);
> use lib './lib';
> use CGI::Minimal;
> use Jcode;
> require './lib/base64.pl';
>
> # Jcode宣言
> my $j = new Jcode;
>
> # 設定ファイル認識
> require "./init2.cgi";  -->ここを変更
> my %cf = &init;
>
>
> init2.cgi
>
> #===========================================================
> # ▼基本設定
> #===========================================================
>
> # 送信先メールアドレス
> $cf{mailto} = 'seminar@okta-osaka.com'; -->ここを変更
>
> # sendmailのパス【サーバパス】
> # → プロバイダの指定を確認のこと
> $cf{sendmail} = '/usr/sbin/sendmail';
>
> # sendmailへの-fコマンド(プロバイダの仕様確認)
> # 0=no 1=yes
> $cf{send_fcmd} = 0;
>
> # 文字コード自動判別(0=no 1=yes)
> # → フォームの文字コード判別を行う場合
> # → フォームがShift_JISの場合は「0」で概ねOK
> $cf{conv_code} = 0;
>
> # フォームのname値の置き換えをする場合
> # → 英字のname値を日本語に自動的に置き換えます。
> # 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」
> $cf{replace} = {
> 'name' => 'お名前',
> 'email' => 'メールアドレス',
>
> };
>
> # 最大受信サイズ(Byte)
> # → 例 : 102400Bytes = 100KB
> $cf{maxdata} = 102400;
>
> # 送信者へのメール返信
> # 0=no 1=yes
> $cf{auto_res} = 1;
>
> # メール件名(初期値)
> $cf{subject} = '次世代貿易スクールお申込みフォーム';
>
> # メール件名の外部指定
> # → 複数のフォームメールで運用する場合、タグで件名指定する
> $cf{multi_sub} = {
> 1 => '資料請求フォーム',
> 2 => 'お問い合わせフォーム',
> 3 => 'ご感想連絡フォーム',
> };
>
> # 返信向けメールタイトル
> $cf{sub_reply} = 'お申込みありがとうございます';
>
> # 本体プログラム【URLパス】
> $cf{mail_cgi} = './postmail2.cgi';  -->ここを変更
>
> # ログファイル【サーバパス】
> $cf{logfile} = './data/log.cgi';
>
> # セッションファイル【サーバパス】
> $cf{sesfile} = './data/ses.cgi';
>
> # テンプレートディレクトリ【サーバパス】
> $cf{tmpldir} = './tmpl';
>
> # セッションの許容時間(分単位)
> # → 確認画面表示後、送信ボタンを押すまでの時間
> $cf{sestime} = 5;
>
> # 送信後の形態
> # 0 : 完了メッセージを出す.
> # 1 : 戻り先 ($back) へ自動ジャンプさせる.
> $cf{reload} = 0;
>
> # 送信後の戻り先【URLパス】
> $cf{back} = '../index.html';
>
> # フォームのname値の正当性をチェックする
> # → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK
> # 0=no 1=yes
> $cf{check_key} = 1;
>
> # 同一IPアドレスからの連続送信制御
> # → 許可する間隔を秒数で指定(0にするとこの機能は無効)
> $cf{block_post} = 60;
>
> # 送信は method=POST 限定 (セキュリティ対策)
> # 0=no 1=yes
> $cf{postonly} = 1;
>
> # ホスト名取得方法
> # 0 : gethostbyaddr関数を使わない
> # 1 : gethostbyaddr関数を使う
> $cf{gethostbyaddr} = 0;
>
> # アクセス制限(複数あれば半角スペースで区切る、アスタリスク可)
> # → 拒否ホスト名又はIPアドレスの記述例
> # (前方一致は先頭に ^ をつける)【例】^210.12.345.*
> # (後方一致は末尾に $ をつける)【例】*.anonymizer.com$
> $cf{denyhost} = '';
>
> # 禁止ワード
> # → 投稿時禁止するワードをコンマで区切る
> $cf{no_wd} = '';
>
> #===========================================================
> # ▲設定完了
> #===========================================================
>
>
> どこの設定がまずいか、ご教授のほう宜しくお願いいたします。
>

サーバエラーであれば、PerlChecker は試しましたか?

http://www.kent-web.com/utility/

それから、2つのpostmailを設置するならば、同一ディレクトリ内に置くのではなく、ディレクトリそのものを分けてください。

■1つ目
/public_html/postmail/postmail.html

■2つ目
/public_html/postmail2/postmail.html


記事No: 11931
投稿日: 2013/06/01(Sat) 00:09:14
タイトルRe^2: sakuraサーバでpostmailメールフォーム複数設定
ID情報: xulan
投稿者: xulan
URLhttp://www.okta-osaka.com/postmail/postmail2.cgi?checkmode

> サーバエラーであれば、PerlChecker は試しましたか?
>
> http://www.kent-web.com/utility/
>
> それから、2つのpostmailを設置するならば、同一ディレクトリ内に置くのではなく、ディレクトリそのものを分けてください。
>
> ■1つ目
> /public_html/postmail/postmail.html
>
> ■2つ目
> /public_html/postmail2/postmail.html

postmailとpostmail2に、2つに分けました。
1つ目は正常動作してますが、2つがまたinternet errorになっています。
そこで、2つともpcheckerを実行してみました。
でも、なぜか文法チェック結果も2つは一緒です。文法エラーも一緒です。
1つ目文法チェック結果:
[Fri May 31 23:46:20 2013] postmail.cgi: Can't locate CGI/Minimal.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at postmail/postmail.cgi line 13.
[Fri May 31 23:46:20 2013] postmail.cgi: BEGIN failed--compilation aborted at postmail/postmail.cgi line 13.
Status: 500
Content-type: text/html

Software error:
Can't locate CGI/Minimal.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at postmail/postmail.cgi line 13.
BEGIN failed--compilation aborted at postmail/postmail.cgi line 13.


For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message
and the time and date of the error.



2つ目文法チェツク結果:
[Fri May 31 23:45:36 2013] postmail.cgi: Can't locate CGI/Minimal.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at postmail2/postmail.cgi line 13.
[Fri May 31 23:45:36 2013] postmail.cgi: BEGIN failed--compilation aborted at postmail2/postmail.cgi line 13.
Status: 500
Content-type: text/html

Software error:
Can't locate CGI/Minimal.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at postmail2/postmail.cgi line 13.
BEGIN failed--compilation aborted at postmail2/postmail.cgi line 13.


For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message
and the time and date of the error.


--------------------------------------------------
下記のソースで、どこかのパスが間違っているでしょうか?

postmail2/postmail.cgi
#!/usr/local/bin/perl

#┌─────────────────────────────────
#│ POST-MAIL : postmail.cgi - 2013/05/12
#│ copyright (c) KentWeb
#│ http://www.kent-web.com/
#└─────────────────────────────────

# モジュール実行
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib './lib';
use CGI::Minimal;
use Jcode;
require './lib/base64.pl';

# Jcode宣言
my $j = new Jcode;

# 設定ファイル認識
require "./init.cgi";
my %cf = &init;


----------------------
#===========================================================
# ▼基本設定
#===========================================================

# 送信先メールアドレス
$cf{mailto} = 'seminar@okta-osaka.com';

# sendmailのパス【サーバパス】
# → プロバイダの指定を確認のこと
$cf{sendmail} = '/usr/sbin/sendmail';

# sendmailへの-fコマンド(プロバイダの仕様確認)
# 0=no 1=yes
$cf{send_fcmd} = 0;

# 文字コード自動判別(0=no 1=yes)
# → フォームの文字コード判別を行う場合
# → フォームがShift_JISの場合は「0」で概ねOK
$cf{conv_code} = 0;

# フォームのname値の置き換えをする場合
# → 英字のname値を日本語に自動的に置き換えます。
# 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」
$cf{replace} = {
'name' => 'お名前',
'email' => 'メールアドレス',

};

# 最大受信サイズ(Byte)
# → 例 : 102400Bytes = 100KB
$cf{maxdata} = 102400;

# 送信者へのメール返信
# 0=no 1=yes
$cf{auto_res} = 1;

# メール件名(初期値)
$cf{subject} = '次世代貿易スクールお申込みフォーム';

# メール件名の外部指定
# → 複数のフォームメールで運用する場合、タグで件名指定する
$cf{multi_sub} = {
1 => '資料請求フォーム',
2 => 'お問い合わせフォーム',
3 => 'ご感想連絡フォーム',
};

# 返信向けメールタイトル
$cf{sub_reply} = 'お申込みありがとうございます';

# 本体プログラム【URLパス】
$cf{mail_cgi} = './postmail.cgi';

# ログファイル【サーバパス】
$cf{logfile} = './data/log.cgi';

# セッションファイル【サーバパス】
$cf{sesfile} = './data/ses.cgi';

# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = './tmpl';

# セッションの許容時間(分単位)
# → 確認画面表示後、送信ボタンを押すまでの時間
$cf{sestime} = 5;

# 送信後の形態
# 0 : 完了メッセージを出す.
# 1 : 戻り先 ($back) へ自動ジャンプさせる.
$cf{reload} = 0;

# 送信後の戻り先【URLパス】
$cf{back} = '../index.html';

# フォームのname値の正当性をチェックする
# → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK
# 0=no 1=yes
$cf{check_key} = 1;

# 同一IPアドレスからの連続送信制御
# → 許可する間隔を秒数で指定(0にするとこの機能は無効)
$cf{block_post} = 60;

# 送信は method=POST 限定 (セキュリティ対策)
# 0=no 1=yes
$cf{postonly} = 1;

# ホスト名取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$cf{gethostbyaddr} = 0;

# アクセス制限(複数あれば半角スペースで区切る、アスタリスク可)
# → 拒否ホスト名又はIPアドレスの記述例
# (前方一致は先頭に ^ をつける)【例】^210.12.345.*
# (後方一致は末尾に $ をつける)【例】*.anonymizer.com$
$cf{denyhost} = '';

# 禁止ワード
# → 投稿時禁止するワードをコンマで区切る
$cf{no_wd} = '';

#===========================================================
# ▲設定完了
#===========================================================


記事No: 11932
投稿日: 2013/06/01(Sat) 06:24:39
タイトルRe^3: sakuraサーバでpostmailメールフォーム複数設定
ID情報: kent
投稿者: KENT

> postmailとpostmail2に、2つに分けました。
> 1つ目は正常動作してますが、2つがまたinternet errorになっています。
> そこで、2つともpcheckerを実行してみました。
> でも、なぜか文法チェック結果も2つは一緒です。文法エラーも一緒です。

このエラーメッセージは気にしなくていいです。
後はパーミッションくらいですかね。
とりあえず、最初にアドバイスした、

> それから、2つのpostmailを設置するならば、同一ディレクトリ内に置くのではなく、ディレクトリそのものを分けてください。
>
> ■1つ目
> /public_html/postmail/postmail.html
>
> ■2つ目
> /public_html/postmail2/postmail.html

というように、ディレクトリそのものを分けて設置してください。


記事No: 11939
投稿日: 2013/06/02(Sun) 19:04:27
タイトルRe^4: sakuraサーバでpostmailメールフォーム複数設定
ID情報: xulan
投稿者: xulan
URLhttp://www.okta-osaka.com/postmail/postmail2.cgi?checkmode

> > postmailとpostmail2に、2つに分けました。
> > 1つ目は正常動作してますが、2つがまたinternet errorになっています。
> > そこで、2つともpcheckerを実行してみました。
> > でも、なぜか文法チェック結果も2つは一緒です。文法エラーも一緒です。
>
> このエラーメッセージは気にしなくていいです。
> 後はパーミッションくらいですかね。
> とりあえず、最初にアドバイスした、
>
> > それから、2つのpostmailを設置するならば、同一ディレクトリ内に置くのではなく、ディレクトリそのものを分けてください。
> >
> > ■1つ目
> > /public_html/postmail/postmail.html
> >
> > ■2つ目
> > /public_html/postmail2/postmail.html
>
> というように、ディレクトリそのものを分けて設置してください。

上に2つに分けたというのが、アドバスの通り、ディレクトリを
2つに分けて設置したということです。


記事No: 11940
投稿日: 2013/06/03(Mon) 20:02:56
タイトルRe^5: sakuraサーバでpostmailメールフォーム複数設定
ID情報: kent
投稿者: KENT

> > > ■1つ目
> > > /public_html/postmail/postmail.html
> > >
> > > ■2つ目
> > > /public_html/postmail2/postmail.html
> >
> > というように、ディレクトリそのものを分けて設置してください。
>
> 上に2つに分けたというのが、アドバスの通り、ディレクトリを
> 2つに分けて設置したということです。

それであれば、2つ目の設置作業自体に誤りがあるのだと思います。
以下のQA等から、もう一度基礎的なことから、チェックし直してみてください。

http://www.kent-web.com/support/faq/faq1.html#1


[検索ページ] [掲示板]