[gnu.emacs.gnus] Reading mail with GNUS

karl@triceratops.cis.ohio-state.edu (Karl Kleinpaste) (05/11/89)

I have been experimenting with reading mail using GNUS.  So far, I'm
finding it really quite satisfactory.  I have a ~karl/Memos directory,
and a .forward file which knows how to aim my mail into appropriate
increasingly-numbered files there (altogether too complex; I can
discriminate classes of mail on all kinds of criteria, usually the
From_ originator), and there is a .newsrc-:Memos file which describes
the structure.  Fine and dandy so far.  I have a couple of problems
and suggestions, though, which I thought I'd share in the hope of
improving things and finding resolution.

[1] There is no `forwarding' function in GNUS as there is in RMAIL.
That is, I want to forward a message whole to another person.  I took
a copy of rmail-forward out of rmail.el and hacked it slightly to
become gnus-Subject-forward, which is now bound to F for me.  (See
below.)  Also, I added a few headers to gnus-ignored-headers,
specifically, Errors-To:, Precedence:, and Received:.  (The latter is
most important.)

[2] A large problem is that GNUS cannot read both real news and a
private directory structure in the same Emacs, due to the replacement
of certain functions by mhspool.el.  This requires me to keep 2
Emacses running in order to be able to switch between news and mail
readily.  Would it be possible to recode the relevant portions of the
GNUS functions so that any function call
	(gnus-some-function arg1 arg2)
was written instead as
	((gnus-which some-function) arg1 arg2)
where gnus-which returns the appropriate type of function (either
news-reading or directory-reading) for the current type of operation?

[3] An alternative mechanism for [2] would be to treat news as part of
one's own private structure.  I attempted this.  I symlinked
/usr/spool/news into ~karl/Memos/netnews.  Then .newsrc-:Memos was
edited to include all of my normal .newsrc, with all Usenet groups
prefixed with "netnews.", but it didn't work.  (This was fortunate, I
suppose, based on what I learned immediately afterward...)  GNUS
spawns "ls -R" to read a private directory structure.  Although this
is fine for small private directories, it is really bad for the entire
netnews structure (especially when we keep 3+ weeks of news around).
More importantly, Sun's "ls" won't traverse symlinks with "-R."
Significantly, a Pyramid "ls" *will* traverse symlinks with "-R,"
which means that this would work on a Pyramid, but it would take a
horrendous amount of time.  Is there any possibility of reworking the
manner of private directory analysis so that it doesn't require "ls
-R"?  An auxiliary pseudo-active file, perhaps?

--Karl

Additional function gnus-Subject-forward:

(defun gnus-Subject-forward ()
  "Forward the current message to another user."
  (interactive)
  (switch-to-buffer gnus-Article-buffer)
  (let ((forward-buffer gnus-Article-buffer)
	(subject (concat "["
			 (mail-strip-quoted-names (mail-fetch-field "From"))
			 ": " (or (mail-fetch-field "Subject") "") "]")))
    ;; There are always 2 buffers visible; use this window.
    (mail nil nil subject)
    (save-excursion
      (goto-char (point-max))
      (forward-line 1)
      (insert-buffer forward-buffer))))