の形で呼ぶ。
//
// 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
|
|
2010年9月15日(水) |
2010年9月16日(木)更新 |
ユーザーのメールソフト(Outlookなど)とつなぐためのメールユーザーエージェント(MUA)として、CentOSにはDovecotが標準でインストールされていますので、これを設定します。 |
|
|
以前のサーバーはユーザエージェントにcourier-IMAPをつかっていましたが、今回はCentOS標準のDovecotを使ってみます。設定はさほど難しくはないようです。
|
設定ファイルは /etc/dovecot.conf ためしに開いて見てみると、ほとんどすべてコメントアウトされていて何も設定されていません。 設定のディフォルト値を見てみます。 # dovecot -n 標準はimapだがpop3も使える。認証方式はpamといった設定のようです。
さっそく設定していきます。必要な設定項目を探して書き換えます。 # メールプロトコルの指定。とりあえずSSLは使わないのでimaps pop3s は除外。 protocols = imap pop3
# plaintextでの認証を許可 disable_plaintext_auth = no
# メールボックス(メールディレクトリ)の場所 mail_location = maildir:/var/spool/mail/%d/%n …PostfixAdminに設定した形式に合わせる
# /var/spool/mailをアクセスするグループ # /var/spool/mailの所有者がroot, グループがmailの場合 mail_privileged_group = mail
# 配送対象最小uid, 配送に使うユーザ(mail)のuidを含める first_valid_uid = 8
# 配送対象最小gid, 配送に使うグループ(mail)のgidを含める first_valid_gid = 12
auth default {}の中 # auth mechanism mechanism = plain login
# pamは使わない。最初にpamを試すため毎回エラーがログに残る。 #passdb pam { # .... #}
# mysql認証設定 passdb sql { # Path for SQL configuration file, see doc/dovecot-sql-example.conf args = /etc/dovecot-mysql.conf }
userdb sql { # Path for SQL configuration file, see doc/dovecot-sql-example.conf args = /etc/dovecot-mysql.conf }
# /etc/passwdなども使わない #userdb passwd { #.... #}
|
/etc に dovecot-mysql.conf をつくり、以下記入。
長い行が2行に表示されているが実際は1行で。
driver = mysql
connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=postfix password=mysql-password
user_query = SELECT concat('/var/spool/mail/', maildir) as home, 8 as uid, 12 as gid FROM mailbox WHERE username = '%u' AND active = '1' …8, 12はそれぞれ配送に使用するユーザ(mail)のuid,gid
password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' ただしpasswordがdovecot用に暗号化(MD5)されて保存されていない場合にはそれを指定する必要があります。今回は平文で保存しているので、 default_pass_scheme = PLAIN
MySQLログインパスワードがかかれているので、ファイルをroot所有とし、パーミッションを0600にしておきます。
|
ためしにdovecotを起動してみます。 # service dovecot start とたんにSELinuxから通知がきました。 MySQLにアクセスしたのがひっかかりました。
SELinux Administration (Selinux Management) から、 Boolian -> SELinux Service Protection -> Dsable SELinux Protection for Dovecot daemon にチェック、今度はOK。
|
|
|