HPにMailformを設置 Sendmailで送信
 HPにメールフォームを設置しようとちょっとばかり勉強してしまったので、またまた備忘録として残しておこうと思います。なにせ、物忘れがひどくて次に同じことやろうとしても、いつも最初からやりなおしばかりで。。。
 
CLIP-MAILを使う
 今までHPに設置するメールフォームは無料のメールフォームサービスを使っていたのですが、やっぱり自前のメールフォームじゃなくちゃカッコつかないなぁ。。なんて考えていたあのですが、設置するとなるとさしあたって緊急の課題じゃないし。。のびのび状態になっていました。
 最近になって、新しいHP(このHP)を立ち上げたのを機会に決心したような訳です。どうせなら添付ファイルが送信出来ればいいなぁと思いスクリプトを探していたら「CLIP-MAIL」を見つけました。比較的簡単に設置出来そうなのでやってみることにしました。
CLIP-MAILのダウンロード
KentWeb様のCLIP-MAILページから利用規定に同意の上ダウンロードします。「clipmail.zip」というZIP形式の圧縮ファイルがダウンロードされますのでWinZipや+LHAなどのソフトで解凍します。
   
サーバーにアップロードと設定
サーバーにCLIP-MAILをアップロード
  解凍したファイルをサーバーにアップロードします。  
  アップロード先のディレクトリはこうしました。  
送信フォームとCGI関連は別ディレクトリにします。
 
ファイル アップロード先
 ・clipmail.html(送信フォーム) /home/ユーザーデリレクトリ/public_html/mailform
 ・clipmail.cgi(メール送信プログラム)
 ・init.cgi( 設定ファイル)
 ・admin.cgi(管理用プログラム)
 ・check.cgi(設定チェック用プログラム)
 ・tmpl/*.txt(テンプレートファイル)
 ・tmpl/*.html(テンプレートファイル)
 ・lib/base64.pl(Base64変換モジュール)
 ・lib/CGI/Minimal.pm(データ受理モジュール)
 ・lib/Jcode.pm(コード変換モジュール)
 ・lib/Unicode/Japanese.pm(コード変換モジュール)
 ・data/log.cgi(記録ファイル)
 ・data/ses.cgi(セッションファイル)
/home/ユーザーディレクトリ/public_html/cg-bin/mail
 
パーミッション設定  
  KentWeb様のCLIP-MAILページに記載の通りに設定します。
 
 
public_html /index.html (トップページ)
clipmail/clipmail.html
cgi-bin/clipmail/clipmail.cgi [705]
admin.cgi [705] 管理画面
check.cgi [705] 動作チェック用
init.cgi [604] 設定ファイル
style.css

lib/ base64.pl
Jcode.pm

Jcode / *.*
Unicode/ *.*
CGI/ Milenimal.pm他

data/ log.cgi [606]
ses.cgi [606]
upl [707]

tmpl/ *.txt
*.html

 
設定ファイルinit.cgiの設定  
  init.cgiをテキストエディタで編集します。(赤字の部分を変更)  
# 管理者用パスワード
$cf{password} = '
*****';
# 送信先メールアドレス
$cf{mailto} = '
xxxx@yahoo.co.jp';      自分のメールアドレス
# sendmailのパス【サーバパス】
$cf{sendmail} = '
/usr/sbin/sendmail';    サーバーのsendmailパスを調べて変更する
サーバーのsendmailパスの調べ方

# which sendmail

/usr/sbin/sendmail

# 自動返信
# 0 : no
# 1 : yes
$cf{auto_res} =
1;       自動返信デフォルトのまま
# 添付メールを許可する
# 0 : no
# 1 : yes
$cf{attach} =
1;      添付ファイル許可デフォルトのまま
# 最大受信サイズ(Byte)
# → 例 : 102400Bytes = 100KB
$cf{maxdata} =
1024000;     1MBデフォルトのまま
# 送信後の戻り先【URLパス】
$cf{back} = '
../../mailform/clipmail.html';
以上でinit.cgiの設定終了です。
 
CGIプログラムperlパスの確認と変更  
サーバーのperlパスの調べ方
 
# which perl


/usr/local/bin/perl

 
 以下の各CGIファイル先頭部分の#!/usr/bin/perlを必要に応じてサーバーのperlパスに変更する。サーバーによっては#!/usr/bin/perlでも#!/usr/local/bin/perlのどちらでも使用出来るものがあります。
 私のサーバーはperlパスを気にしなくて済むようにどちらでも使用出来るように設定しています。
admin.cgi
clipmail.cgi
check.cgi
関連記事    
  ユーザーディレクトリでCGIを有効にするこちらを参照    
設置したメールフォーム    
  こちらが実際のメールフォームです。    
       
       
       
       
     
2014.09.01