Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts on Gnus.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/gnus.e>
#           or at <http://angg.twu.net/e/gnus.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######





# «.links-to»				(to "links-to")
# «.browse-foreign-server»		(to "browse-foreign-server")
# «.browse-select-group»		(to "browse-select-group")
# «.planner-create-task-from-buffer»	(to "planner-create-task-from-buffer")
# «.gnus-number»			(to "gnus-number")
# «.find-mbox»				(to "find-mbox")
# «.limiting»				(to "limiting")
# «.gmail»				(to "gmail")
# «.openssl»				(to "openssl")





#####
#
# links to servers, groups, articles
# 2007nov12
#
#####

# «links-to»  (to ".links-to")
# (find-angg ".emacs" "gnus-quimby")

;; (find-eapropos "^gnus-.*mode$")
;; (find-elinks (mapcar (lambda (x) `(find-emode-links ',x)) (apropos-internal "^gnus-.*mode$")))
;; (find-elinks (mapcar (lambda (x) `(find-ekeymapdescr ,x)) (apropos-internal "^gnus-.*map$")))

;; «browse-foreign-server»  (to ".browse-foreign-server")
;; (find-gnusnode "Index" "* gnus-group-mode")
;; (find-emode-links    'gnus-group-mode)
;; (find-efunctiondescr 'gnus-group-mode "B" "gnus-group-browse-foreign-server")
;; (find-ekeymapdescr    gnus-group-mode-map "gnus-group-browse-foreign-server")
;; (find-efunction                           'gnus-group-browse-foreign-server)
;; (find-gnusnode "Index"                  "* gnus-group-browse-foreign-server")
;; (gnus-group-browse-foreign-server '(nntp "quimby.gnus.org"))
;; (find-ebuffer "*Gnus Browse Server*")

;; «browse-select-group»  (to ".browse-select-group")
;; (find-gnusnode "Index" "* gnus-browse-mode")
;; (find-emode-links    'gnus-browse-mode)
;; (find-efunctiondescr 'gnus-browse-mode)
;; (find-ekeymapdescr    gnus-browse-mode-map "=" "gnus-browse-select-group")
;; (find-gnusnode "Index"                       "* gnus-browse-select-group")

;; (find-efile "")
;; (find-efile "gnus/")
;; (find-gnusfile "")
;; (find-gnusgrep "grep -nH -e Group *.el")
;; (find-gnusgrep "grep -nH -e '\\*Group\\*'")




#####
#
# The "gnus-number" text property in summary buffers
# 2007nov14
#
#####

# «gnus-number»  (to ".gnus-number")
(setq gnus-select-method '(nntp "quimby.gnus.org"))
     (gnus-fetch-group   "gnu.emacs.sources")

(find-fline "~/LOGS/2007nov12.gnus" "gnus-number property")
I'm now trying to implement a function that will jump to a specific...




#####
#
# planner-create-task-from-buffer
# 2007nov14
#
#####

# «planner-create-task-from-buffer»  (to ".planner-create-task-from-buffer")

;; (find-node "(planner-el)Annotations")
;; (find-node "(planner-el)Annotations" "`planner-create-task-from-buffer'")

;; (setq gnus-select-method '(nntp "quimby.gnus.org"))
;;      (gnus-fetch-group           "gnu.emacs.bug")

;; (find-ebuffer "*Article*")
;; (find-ebuffer "*Article*" nil)
;; (find-ebuffer "*Article*" nil '(call-interactively 'planner-create-task-from-buffer))
;; (find-ebuffer "*Article*" nil '(apply 'planner-create-task-from-buffer (planner-read-task)))

# (find-node "(planner-el)Creating a Task")

(require 'planner)
(mkdir "~/Plans/")
(find-fline "~/Plans/")
(setq planner-project "WikiPlanner")
(planner-find-file "TaskPool")

(muse-project-find-file "TaskPool" "WikiPlanner" nil nil)
(muse-project-page-file "TaskPool" "WikiPlanner")

  muse-project-find-file("TaskPool" "WikiPlanner" nil nil)
  planner-find-file("TaskPool")
  planner-create-task-from-info-basic(nil "B" "0" "_" "bug" "[[TaskPool]]" "2007.11.12" "TaskPool")
  planner-create-task-from-info(nil "B" "0" "_" "bug" "[[TaskPool]]" "2007.11.12" "TaskPool")
  planner-create-task("bug" "2007.11.12" nil "TaskPool" "_")
  planner-create-task-from-buffer("bug" "2007.11.12" "TaskPool" "_")

<edrx> I haven't used planner in ages, and now I need to check what
       `planner-create-task-from-buffer' does in a gnus "*Article*"
       buffer (long story). I created a directory ~/Plans but it
       (planner) gives this error: "There is no page TaskPool in
       project nil". what do I need to fix now? how do I create, or
       set, a "project"?

There is no page TaskPool in project nil.

A very basic planner question...
(require 'planner)
(make-directory "~/Plans/")
(setq planner-project "WikiPlanner")
(planner-find-file "TaskPool")
;; -> error: There is no page TaskPool in project nil.

# (find-efunction 'planner-find-file)








<edrx> some basic questions about gnus...
<edrx> I'm trying to answer this using gnus:
<edrx> http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00648.html
<edrx> but (1) I don't know how to fetch gnu.emacs.devel from
       quimby.gnus.org, only from
       http://news.gmane.org/gmane.emacs.devel - i.e., (progn (setq
       gnus-select-method '(nntp "news.gmane.org"))
       (gnus-fetch-group "gmane.emacs.devel"))
<edrx> (2) that message by rms doesn't appear when I ask gnus to
       fetch 100 messages from that group... I guessed that "fetch
       100" means "fetch the last 100 in chronological order", not
       some stranger order that is half-thread-based... (2a) what
       is the order? (2b) how do I ask gnu to access the server
       again and reread what's there? (2c) can I do that asking it
       to read another number of messages, not 100?





#####
#
# help needed: bug report answered at "devel"
# 2007nov14
#
#####



Help needed:
I sent a bug report to gnu.emacs.bug,
and I received an answer (with a "try this"-ish patch)
that indicated that the discussion was being moved
to gnu.emacs.devel...

The bug report:
  http://article.gmane.org/gmane.emacs.bugs/16951
  http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-11/msg00065.html
  (progn (setq gnus-select-method '(nntp "quimby.gnus.org")) 
         (gnus-fetch-group "gnu.emacs.bug"))

The answer:
  http://article.gmane.org/gmane.emacs.devel/82931
  http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00648.html
  (progn (setq gnus-select-method '(nntp "news.gmane.org"))
         (gnus-fetch-group   "gmane.emacs.devel"))

My answer saying that the patch worked:
  http://article.gmane.org/gmane.emacs.devel/83205





#####
#
# opening a mbox in gnus
# 2007dec19
#
#####

# «find-mbox»  (to ".find-mbox")
# (find-angg ".emacs" "find-mbox")

# (find-node "(gnus)Unix Mail Box")
# (find-fline "~/.muttrc")
# (find-fline "~/.mutt/inbox")

# This works:
# (find-sh0 "cp -v ~/.mutt/inbox /tmp/testmbox")
# (gnus-fetch-group "nndoc+/tmp/testmbox:testmbox")


# Old notes:
# A sexp to open a newsgroup:
# (find-angg ".emacs" "gnu.emacs.bugs")

(setq nnmbox-mbox-file   "/tmp/testmbox")
(setq nnmbox-active-file "~/.mbox-active")
(setq nnmbox-get-new-mail nil)
(setq gnus-secondary-select-methods '((nnmbox "")))

;; (setq gnus-select-method '(nntp "quimby.gnus.org"))
;;      (gnus-fetch-group   "gnu.emacs.bug")

;; (find-node "(gnus)Starting Up")

;; This is a sexp that opens a newsgroup in gnus:
;;
(progn (setq gnus-select-method '(nntp "quimby.gnus.org"))
       (gnus-fetch-group "gnu.emacs.bug"))

;; There should be something similar that I can use to open an mbox,
;; but what?
;;
;; (info "(gnus)Starting Up")
;; (info "(gnus)Finding the News")
;; (info "(gnus)Unix Mail Box")
;; (describe-variable 'gnus-select-method)
;; (describe-variable 'gnus-secondary-select-method)
;; (find-variable 'gnus-secondary-select-methods)
;; (shell-command-to-string "cp -v ~/.mutt/inbox /tmp/testmbox")
;;
(setq nnmbox-mbox-file   "/tmp/testmbox")
(setq nnmbox-active-file "~/.mbox-active")
(setq nnmbox-get-new-mail nil)
(setq gnus-secondary-select-methods '((nnmbox "")))

;; and? ...

(add-to-list 'gnus-secondary-select-methods '(nnmbox "/tmp/testmbox"))
(setq gnus-secondary-select-methods '((nnmbox "/tmp/testmbox")))

(find-ebuffer "*Group*")
(find-ebuffer "*Group*" nil '(eek "G f /tmp/testmbox"))
(gnus-group-make-doc-group "/tmp/testmbox" "mbox")

In the "*Group*" buffer, type G f /tmp/testmbox
G f runs the command gnus-group-make-doc-group

Opening nndoc server on /tmp/testmbox...done
Killed group nndoc+/tmp/testmbox:testmbox

# (find-egrep "grep -nH -e \"Opening %s server\" $(find * -name '*.el')")

(require 'gnus)
(require 'gnus-int)
(gnus-check-group "nndoc+/tmp/testmbox:testmbox")
(find-ebuffer "*Group*")
(gnus-fetch-group "nndoc+/tmp/testmbox:testmbox")




#####
#
# limiting
# 2008jan03
#
#####

# «limiting»  (to ".limiting")
# (find-gnusfile "gnus-sum.el" "defun gnus-summary-limit-to-age")
# (find-node "(gnus)Limiting" "`/ t'" "`gnus-summary-limit-to-age'")
# (find-node "(gnus)Limiting" "`/ w'" "`gnus-summary-pop-limit'")

# (find-mbox "/tmp/testmbox" "")
# (find-mbox "/tmp/testmbox" "" '(eek "C-u t/w"))
# (find-mbox "/tmp/testmbox" "" '(eek "C-u /w /t-4"))
# (find-mbox "/tmp/testmbox" "" '(eek "C-u /w /t-2"))
# (find-mbox "/tmp/testmbox" "" '(eek "C-u /w /t-1"))
# (find-mbox "/tmp/testmbox" "" '(eek "C-u /w") '(gnus-summary-limit-to-age -4 t))





#####
#
# gmail
# 2008jul31
#
#####

# «gmail»  (to ".gmail")

# (find-fline "~/.authinfo")
machine imap.gmail.com login username@gmail.com password secret port 993
# (find-node "(gnus)IMAP")
# (find-efile "net/tls.el")
# (find-efile "gnus/starttls.el")

;; (find-egrep "grep -nH -e gnus-group-browse-foreign-server $(find * -name '*.el')")
;; (find-egrep "grep -nH -e 'IMAP username' $(find * -name '*.el')")
;; (find-efile "gnus/gnus-group.el")
;; (find-gnusfile "gnus-group.el")
;; (find-gnusfile "gnus-group.el" "defun gnus-group-browse-foreign-server")
;; (find-node "(gnus)NNTP")

;; Here's what I run:

(require 'gnus-group)

(add-to-list 'gnus-secondary-select-methods
	     '(nnimap "gmail"
		      (nnimap-address "imap.gmail.com")
		      (nnimap-server-port 993)
		      (nnimap-authenticator login) ; new
		      (nnimap-authinfo-file "~/.authinfo") ; new
		      (nnimap-stream ssl)))

(gnus-group-browse-foreign-server
 '(nnimap "gmail"
	  (nnimap-address "imap.gmail.com")
	  (nnimap-stream ssl)))

;; Problem (actually, I am not sure that this is a/the problem): I am
;; asked for a username, but then this username always gets an
;; "@imap.gmail.com" appended to it; the authentication fails, and
;; this may be because of the "@imap.gmail.com"... maybe if the full
;; username were just "eduardoochs2@gmail.com" then the authentication
;; would succeed.

;; The questions asked in the minibuffer:
;; IMAP username for imap.gmail.com (using stream `ssl'): eduardoochs2@gmail.com
;; IMAP password for eduardoochs2@gmail.com@imap.gmail.com (using authenticator `login'):

;; My ~/.authinfo file is like this:
;;  machine imap.gmail.com login eduardoochs2@gmail.com password realpasswordhere port 993
;;
;; (find-file "~/.authinfo")
;; (find-sh0 "chmod 600 ~/.authinfo")

;; From the "*Messages*" buffer:
;;   Connecting to gmail...
;;   Opening nnimap server on gmail...
;;   imap: Connecting to imap.gmail.com...
;;   imap: Opening SSL connection with `openssl s_client -quiet -ssl3 -connect %s:%p'...done
;;   Waiting for response from imap.gmail.com...done
;;   Parsing authinfo file `~/.authinfo'.
;;   imap: Authenticating to `imap.gmail.com' using `login'...
;;   imap: Plaintext authentication...
;;   Login failed...
;;   call-interactively: Text is read-only [2 times]
;;   Login failed... [3 times]
;;   Quit trying to open server nnimap+gmail
;;   Opening nnimap server on gmail...failed
;;   Unable to contact server gmail: nil




#####
#
# openssl
# 2008jul31
#
#####

# «openssl»  (to ".openssl")
# (find-status   "openssl")
# (find-vldifile "openssl.list")
# (find-udfile   "openssl/")
# (find-fline "/usr/share/doc/openssl/doc/openssl.txt.gz")
# (find-man "1 openssl")
# (find-man "1 openssl" "s_client")
# (find-man "1 s_client")

# (find-sh "openssl list-standard-commands")
# (find-sh "openssl list-message-digest-commands")
# (find-sh "openssl list-cipher-commands")
# (find-fline "/etc/services" "993" "IMAP over SSL")
# (find-esgrep "grep -niH -e imap *.e")
# (find-es "mail" "imap4-eepitch")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
openssl s_client -quiet -ssl3 -connect imap.gmail.com:993
A0001 LOGIN eduardoochs2@gmail.com PaSsWoRd
A0002 LIST "" *
A0003 SELECT INBOX
A0004 SELECT "INBOX.Sent Items"
A0005 LOGOUT

# IMAP must be allowed explicitly for each gmail account
# (In the "Settings" page)

# From A0002 on nothing works




http://www.fastmail.fm/help/remote_email_access_setup_instructions.html
http://www.fastmail.fm/docs/imap/gnus.htm







# (find-gnusnode "Summary Buffer Lines" "`gnus-summary-line-format'")

# (find-node "(gnus)Limiting" "`/ N'" "Insert all new articles")
# (find-efunctiondescr 'gnus-summary-insert-new-articles)






# (find-fline "~/.newsrc-dribble")
# (find-fline "~/LOGS/2007nov14.gnus")
# (find-gnusnode "Startup Files")
# (find-gnusnode "The First Time")

# (find-gnusnode "Read Articles" "`R'" "`gnus-read-mark'")
# (find-gnusnode "Other Marks" "`A'" "`gnus-replied-mark'")
# (find-gnusnode "Setting Marks" "`M c'" "Clear all readedness-marks")
# (find-gnusnode "Setting Marks")

  get-buffer("*Article*")
* gnus-buffer-live-p("*Article*")
* gnus-set-global-variables()

# (find-fline "~/News/")
# (find-fline "~/News/drafts/drafts/1")

# http://www.linuxworld.com/news/2007/051607-linuxworld-mail-madness.html?page=1

http://www.emacswiki.org/emacs/GnusGmail

The setup of gnus for gmail is quite simply:

#+BEGIN_SRC emacs-lisp
 (setq gnus-select-method '(nnimap "imap.gmail.com"))
 (setq smtpmail-default-smtp-server "smtp.gmail.com")
#+END_SRC

and in ~/.authinfo.gpg:

#+BEGIN_EXAMPLE
 machine imap.gmail.com login <username> password <password> port  imap
 machine smtp.gmail.com login <username> password <password> port  587
#+END_EXAMPLE  That is enough to get and check mail (M-x gnus) and send mail (C-x m).  Since it is imap, nothing is kept locally so whatever you do in gnus is reflected on your phone and vice versa.

One thing that bears mentioning is that gnus treats mail as news so it won't show you by default already read messages (like most mail apps), hit L to show all groups (as opposed to l for only groups with new messages) and enter the INBOX group to see all previous messages.





#  Local Variables:
#  coding:               raw-text-unix
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: