[mew-dist 29206] Re: 共通のmew.elファイルの設定をホスト毎にカスタマイズする方法

URA Hiroshi ura at example.com
2010年 4月 13日 (火) 01:52:43 JST


宇羅です。

>> Fri, 09 Apr 2010 08:40:32 +0900 (JST), Hideyuki SHIRAI (白井秀行) <shirai at example.com> said:

> NotePC などで接続場所を変えた時の自動追従はできませんが、Emacs +
> Mew を立ち上げた時に切り替えるならこんなので、起動時の

例えば会社の中にいるか外にいるか等の接続場所の自動判定を以下のような
感じでやっています。

1. 接続場所の判定に使うための関数を用意する。私の環境ではpingが通る
   か否かの関数を用意して判断しています。

   (defun check-host-alive (hostname)
     (if (>= emacs-major-version 22)
         (eq (call-process-shell-command
	   "/sbin/ping" nil nil nil "-c 1" hostname) 0)
       t))

2. mailserver.example.jpにpingが通らなかったら、ssh-serverに
   sshost.example.jpを設定して、case内の*-ssh-serverでssh-server
   の値を設定する。

   (let* ((ssh-server (if (eq (check-host-alive "mailserver.example.jp") nil)
                          "sshost.example.jp")))

      `(("default"

	 ("smtp-server"		"mailserver.example.jp")
	 ("smtp-ssh-server"	,ssh-server)

	 ("imap-server"		"mailserver.example.jp")
	 ("imap-ssh-server"	,ssh-server)

	)))

--
ura


Mew-dist メーリングリストの案内