[Mew-dist 410] Re: switch From: from To:

樋口雅文 [Masafumi Higuchi] higuchi at example.com
1997年 1月 14日 (火) 10:40:34 JST


樋口@NTT ソフト研です。

>>>>> "yoshi" == (yoshi at example.com (Y.Yoshinaga)) さん曰く:

yoshi> 便乗になりますが、僕もFromを使いわけたいと思っています。
yoshi> メールを書くときにToによってFromを自動的に付けかえるようにするに
yoshi> はどうしたらいいんでしょうか?

私はこんなの書いて使ってます。私もlispに詳しいわけじゃないので、きれい
なコードではないかもしれませんが...

(defun mew-select-from ()
  (catch 'tag
    (let ((r mew-from-variation-alist) cell b f)
      (while r
		(setq cell (car r))
		(setq b (car cell))
		(if (setq f (rfc822/get-field-body (car b)))
			(cond ((listp (cdr b))
				   (let ((r (cdr b)))
					 (while r
					   (if (string-match (car r) f)
						   (throw 'tag (cdr cell))
						 )
					   (setq r (cdr r))
					   ))
				   )
				  ((stringp (cdr b))
				   (if (string-match (cdr b) f)
					   (throw 'tag (cdr cell))
					 ))
				  ))
		(setq r (cdr r))
		))
	mew-from))

(setq mew-from-variation-alist
      '(
	(("To" . ("\\.com" "\\.net")) . "Masafumi Higuchi <higuchi>")
	(("To" . ("\\.jp")) . "樋口 雅文[Masafumi Higuchi] <higuchi at example.com>")
	(("To" . (".")) . "Masafumi Higuchi <higuchi at example.com>")
	))

そのうえで、mew-make-mimeを以下のように書き換えるとToによってFromを使
い分けられます。

(defun mew-draft-make-mime ()
  (interactive)
  (if (mew-header-get-value mew-ct:)
      (progn
	(ding)
	(message "%s already exists!" mew-ct:)
	)
    (if (mew-attach-p)
	(mew-draft-make-multi)
      (mew-draft-make-single))
    (goto-char (point-min))
    (sit-for 0)
    (re-search-forward "^-*$")
    (beginning-of-line)
    (setq mew-draft-buffer-header (point-marker)) ;; just in case
;; by M. Higuchi
	(if (null (mew-header-get-value "From:"))
		(and mew-from-variation-alist (mew-header-insert-here "From:" (mew-select-from)))
	  (ding)
	  (message "From: already exists!")
	  )
    ))

    %%%%  樋口 雅文     E-mail: higuchi at example.com  %%%%
    %%%%       NTT Software Laboratories             %%%%
    %%%%  Phone:+81-422-59-2908 FAX:+81-422-59-2699  %%%%



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