の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/インターネットサーバー/サーバー構築メモ その2/メールサーバー その2
PostfixAdminが無事稼動したらバーチャル配送を定義し、PostfixAdminのMySQLデータとPostfixのドメイン、アドレス、メールボックスなどの管理をつなげます。 |
|
|
MySQL接続設定
postfixからMySQLに必要なデータの照会ができるように以下の3つのアクセス定義ファイルを作ります。
自分の取り扱うメールドメインを定義しているdomainテーブルへのアクセス定義ファイル。 /etc/postfix/mysql/mysql_virtual_domains_maps.cf 内容は、 user = postfix password = (MySQLに登録したパスワード) hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s'
受け取ったメールを転送するアドレスを定義するaliasテーブルへのアクセス。 /etc/postfix/mysql/mysql_virtual_alias_maps.cf 内容は、 user = postfix password = (MySQLに登録したパスワード) hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active=1
ユーザのメールを保存するメールディレクトリを定義するmailboxテーブルへのアクセス。 /etc/postfix/mysql/mysql_virtual_mailbox_maps.cf 内容は、 user = postfix password = (MySQLに登録したパスワード) hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active=1
この他にメールの容量制限などのデータも定義されていますが今のところ使いません。
|
バーチャル配送の設定
これらのデータを使ってバーチャル配送を定義します。 バーチャル配送は以前はvmailという専用ユーザをつくってそれにやってもらっていましたが、今回は最初からあるmailユーザにやってもらうことにします。へたに新しいユーザを作ってやるとSELinuxがからんできそうな気がするからです。 /etc/postfix/main.cf を編集または追記。
#virtualデーモンによりバーチャル配送をする指定 virtual_transport = virtual
#配送されるメールの最小uid。mailを含むこと。 virtual_minimum_uid = 8 #メール配送に使うuid, gid。(mailのuid,gidを指定) virtual_uid_maps = static:8 virtual_gid_maps = static:12
#メールボックスのベースディレクトリ virtual_mailbox_base = /var/spool/mail/
#バーチャルドメインの定義 virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf
#バーチャルドメイン配送もしくは転送の指定 virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
# メール受信者のメールボックス(メールディレクトリ)を指定 virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
以上でMySQLとの連携の設定は完了。 # alternatives --config mta でシステムのmtaをpostfixに切替えテスト。OK。
|
SELinux対策
相変わらずSELinuxがぶーたらぶーたら言っています。
SELinux Management で Boolean -> Other -> allow_postfix_local_write_mail_spool Boolean -> SELinux Service Protection -> Disable SELinux protection for postfix
静かになりました。
|
|
|