[Mew-dist 17309] Could config support a queuing switch?

Hiroyuki CHIBA hiro at example.com
2001年 5月 9日 (水) 22:02:27 JST


  千葉@日立といいます。

S/MIME等の mew1.95b* の新しい機能が使いたいと思っているのですが、ちょっ
と特殊な使い方をしているので、mew 1.94 を使いつづけているものです。

普段、モバイルPC(FreeBSD)に自分のメイルボックスを持ち歩いているので
すが、その時に接続しているネットワーク環境により、指定したSMTPサーバに
送信するか、ローカルにキューイングするかを自動的に切替えたいのです。

1.94 では、config 毎に queuing のon/offが指定できたので、ifconfig の結
果からconfig のラベルを返すperlスクリプトを作成し、
mew-draft-insert-config から呼び出すように書き換えて、config-new 変数
を再設定するようにしています。
# 具体的な変更内容は最後に示しますが、あんまりきれいなコードで無いので
# 突っ込まないでください。^^;

1.95b では、config で queuing を on/off するのではなく。C-cC-m により、
ユーザが明示的にキューイングを指定する様になっていると理解しています。
また、SMTPサーバに送信を試みて失敗した場合に、queue に落ちて、再編集が
可能になっているのだと思います。すなわち、
  (1) 送信可能なSMTPサーバがあれば送ればよい。
  (2) 別の理由でキューイングしたい場合には、ユーザが明示する。
      (この理由は良くわからないですが、もしかして、キューを未送信のド
       ラフトの管理場所として使うことが想定されていますか?)
が仮定されている様に思います。

これらに対して、私の事情は、以下の通りです。
  (1) メールの配送経路を特定範囲にとどめたい場合がある。
      すなわち、会社内でやりとりする社外秘扱いのメールは、社内ネットワー
      クにあるMTAに直接届けたい。
  (2) メール作成時(メール作成して、C-cC-cするまで)は、常に同じ操作で行
      いたい。
      うまく説明できないのですが、メール作成作業は基本的に発想する思考
      活動なので、他のこと(今、どのネットワークにつながっているか)を忘
      れて作業がしたいのです。

# ちなみに、私の職場では、他のメンバに割り込むときは、その人が何をして
# いるかを確認し、メールを作成している時はなるべく割り込まないように配
# 慮しています。割り込まれた後に元の作業に復帰するのに必要な時間が決定
# 的に変わります。:-)
# メールを読んでいる時やWebを見たりしている時は、割り込みチャンス。;-)

長くなりましたが、以下の点について、お聞きしたいと思います。

1. config で、送信時の queuing を指定する仕様の是非(実現可能性も)
2. draft 作成時に、config の値を設定する外部関数を登録できるhook
  (既に現行の仕様でできるなら、私の理解不足です。ご指摘ください。)

よろしくお願いします。


#### 以下、参考まで ####
#### mew-draft-insert-config の変更部分 ####
--- mew-draft.el.orig.1.94.2    Mon Mar 13 09:51:25 2000
+++ mew-draft.el        Mon Mar 13 10:00:02 2000
@@ -115,6 +115,9 @@
      ["FIB fill default"  mew-fib-fill-default  (not (mew-attach-p))]
      ["FIB delete frame"  mew-fib-delete-frame  (not (mew-attach-p))])))
 
+(defvar mew-guess-location-p nil
+  "Flag for guessing location when draft buffer is preserved.\n")
+
 (if mew-draft-header-map
     ()
   (setq mew-draft-header-map (make-sparse-keymap))
@@ -981,6 +984,10 @@
         (config-new (if config-gus (mew-join "," config-gus))))
     (if (and mew-ask-config (not (interactive-p)))
        (setq config-new (mew-input-config config-new)))
+;
+    (if mew-guess-location-p
+       (setq config-new (mobile-get-location)))
+;
     (if (and (interactive-p) (not config-new))
        (setq config-new ""))
     (if config-new
#### mew-draft-insert-config の変更部分 終り ####

#### ~/.emacs に記述している部分 ####
(setq mobile-get-command "~/bin/whereami")

(defun mobile-get-location ()
  (save-excursion
    (call-process (expand-file-name mobile-get-command)
		  ()
		  (get-buffer-create "*Shell Command Output*"))
    (set-buffer "*Shell Command Output*")
    (end-of-buffer)
    (previous-line 1)
    (buffer-substring
     (save-excursion (beginning-of-line) (point))
     (save-excursion (end-of-line) (point))))
)

(setq mew-guess-location-p t)
#### ~/.emacs に記述している部分 終り####

----
千葉 寛之 : hiro at example.com clin at example.com
(株)日立製作所 ビジネスソリューション事業部
 phone: 044-549-1713(Dial-in)  fax: 044-549-1721



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