<< Programes | Gnus | Emacs-w3m >>
Updated: 2007-08-25-13:30:36
Muse File: /emacs/gnus.muse
Δ
Gnus 简介
Gnus 与传统的邮件阅读程序完全不同。 Gnus 最初的定位是 newsreader,是用来阅读 newsgroup
中的新闻的, Gnus 采用相同的方式来处理新闻和邮件。因此,如果你还打算用 Gnus 收发邮件,就要准
备接受 Gnus 的工作方式
配置
如果你收发Gmail的话,安装stunnel是一个比较简单的办法,由它来负责链接,你的客户端只要连接本地
就可以收发邮件了,Windows版的下载地址,安装,然后配置 stunnel。
stunnel.conf
[Code] # GLOBAL OPTIONS client = yes output = stunnel-log.txt #input = stunnel-log.txt debug = 0 taskbar = yes # SERVICE-LEVEL OPTIONS [SMTP Gmail ] accept = 127.0.0.1:466 connect = smtp.gmail.com:465 [POP3 Gmail ] accept = 127.0.0.1:996 connect = pop.gmail.com:995
配置smtp
(defun fs-change-smtp () "Change the SMTP server according to the current from line." (save-excursion (let ((from (save-restriction (message-narrow-to-headers) (message-fetch-field "from")))) (message "From is `%s', setting `smtpmail-smtp-server' to `%s'" from (cond ((string-match "koocyton@gmail.com" from) ;; Use stmp-auth (message "Using smtp-auth") ;; Sending mail (setq message-send-mail-function 'smtpmail-send-it) (setq smtpmail-starttls-credentials '(("127.0.0.1" 466 nil nil))) (setq smtpmail-auth-credentials '(("127.0.0.1" 466 "koocyton@gmail.com" nil))) (setq smtpmail-default-smtp-server "127.0.0.1") (setq smtpmail-smtp-server "127.0.0.1") (setq smtpmail-smtp-service 466) ) ;;((string-match "koocyton@gmail.com" from) ;; Use local sendmail ;; (message "Using local sendmail") ;;(setq message-send-mail-function `message-send-mail-with-sendmail)) (t (error (concat "Don't know which mail server to use for " from)))))))) (add-hook 'message-setup-hook 'fs-change-smtp)
配置~/.gnus.el
我不太喜欢这个文件放在$HOME目录下,所以,我将它挪到了$EMACSDIR/custom/lisp目录下
在这个目录下存放我的elisp插件和配置,添加到 ~/.emacs
(setq gnus-init-file "~/../lisp/gnus-init.el")
~/../lisp/gnus-init.el内容
;;_+ 资料设定 (setq user-full-name "koocyton") (setq user-mail-address "koocyton@gmail.com") ;;_+ 服务器的设定 (setq gnus-select-method '(nntp "news.cn99.com")) (setq gnus-secondary-select-methods '((nntp "news.newsfan.net") (nntp "news.yaako.com") (nnml ""))) ;;_+ 将发往新闻组的信和其它信件分开存放 (setq gnus-message-archive-group '((if (message-news-p) "nnml:sent.news" "nnml:sent.mail"))) ;;_+ 邮箱设定 POP3 (setq mail-source-primary-source '(pop :user "koocyton@gmail.com" :server "127.0.0.1" :password "YouPassword" :port 996)) (setq mail-sources '( (pop :user "koocyton@gmail.com" :password "YouPassword" :server "127.0.0.1" :port 996 ) (pop :user "koocyton" :password "YouPassword" :server "pop.163.com" :port 110 ) )) ;;_+ 打开图片 (auto-image-file-mode) (setq mm-inline-large-images t) (add-to-list 'mm-attachment-override-types "image/*") ;;_+ 开启代理功能,为了能让gnus支持离线浏览,gnus 5.10.x会自动开启该功能。 (gnus-agentize) ;;保存有价值的帖子 ;;按下 * 键,帖子就会被拷贝到本地的 cache 中保存起来 ;;用 Meta-* 就可以把帖子从缓存中删掉。 ;;想查看自己保存在缓存里的帖子,在 summary buffer 中用 'Y c' 命令即可。 (setq gnus-use-cache 'passive) ;;自动换行功能,比起其他的工具要好得多。 (add-hook 'message-mode-hook (lambda () (setq fill-column 72) ;;这里的72是等一行到了72个字符后开始换行 (turn-on-auto-fill))) (setq message-cite-function 'message-cite-original-without-signature) ;; 改变阅读新闻时窗口的布局 ;; 默认是上下5:5分屏,又难看又不实用。 ;; 方案一,窗口划分为上4下6(比例) (gnus-add-configuration '(article (vertical 1.0 (summary .4 point) (article 1.0)))) ;;开启记分功能 (setq gnus-use-adaptive-scoring t) (setq gnus-save-score t) (add-hook 'mail-citation-hook 'sc-cite-original) (add-hook 'message-sent-hook 'gnus-score-followup-article) (add-hook 'message-sent-hook 'gnus-score-followup-thread) (defvar gnus-default-adaptive-score-alist '((gnus-kill-file-mark (from -10)) (gnus-unread-mark) (gnus-read-mark (from 10) (subjnnect 30)) (gnus-catchup-mark (subject -10)) (gnus-killed-mark (from -1) (subject -30)) (gnus-del-mark (from -2) (subject -15)) (gnus-ticked-mark (from 10)) (gnus-dormant-mark (from 5)))) (setq gnus-score-find-score-files-function '(gnus-score-find-hierarchical gnus-score-find-bnews bbdb/gnus-score) gnus-use-adaptive-scoring t) (setq gnus-confirm-mail-reply-to-news t message-kill-buffer-on-exit t message-elide-ellipsis "[...]\n" ) ;;_+ 排序 (setq gnus-thread-sort-functions '( (not gnus-thread-sort-by-date) (not gnus-thread-sort-by-number) )) ;;_+ 现在可以在group buffer里面M-x gnus-topic-create-topic来创建新闻分组 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) ;;_+ 中文设置(编码变换使用数字+g的方法) (if (or (string-match "22." emacs-version)) (utf-translate-cjk-load-tables)) (add-to-list 'gnus-group-charset-alist '("\\(^\\|:\\)cn\\>\\|\\<chinese\\>" gbk)) (setq gnus-summary-show-article-charset-alist '((1 . cn-gb-2312) (2 . big5) (3 . gbk) (4 . utf-8))) (setq gnus-group-name-charset-method-alist '(((nntp "news.newsfan.net") . gbk))) (setq gnus-group-name-charset-group-alist) (setq gnus-default-charset 'gbk gnus-group-name-charset-group-alist '(("\\.com\\.cn:" . gbk)("news\\.newsfan\\.net" . gbk)) gnus-newsgroup-ignored-charsets '(unknown-8bit x-unknown iso-8859-1 ISO-8859-15 x-gbk GB18030 gbk DEFAULT_CHARSET)) (setq mm-coding-system-priorities '(iso-8859-1 gb2312 utf-8)) (add-hook 'gnus-startup-hook '(lambda () (setq gnus-visible-headers (concat "^User-Agent:\\|^Content-Type:\\|" "Content-Transfer-Encoding:\\|" "^X-mailer:\\|^X-Newsreader:\\|^X-Sender:\\|" gnus-visible-headers)))) ;;_+ 另外,有些用web方式发出的邮件里有html,加入下面的设置,只看其中的 ;;_+ plain text部分: (eval-after-load "mm-decode" '(progn (add-to-list 'mm-discouraged-alternatives "text/html") (add-to-list 'mm-discouraged-alternatives "text/richtext"))) (defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter) ;;_+自己的帖子高亮 (add-hook 'message-sent-hook 'gnus-score-followup-article) (add-hook 'message-sent-hook 'gnus-score-followup-thread) ;;_+ 设置随机的签名和face (defvar random-signature-head "Good Good Life , Day Day Study !\n") (defvar random-signature-foot "\n -- koocyton") (defvar random-signature-list '("http://kt.doopai.com" "http://www.phpx.com" "http://bbs.chinaunix.net/forumdisplay.php?fid=27" "http://www.phpe.net" "http://www.php.net" "http://www.emacs.cn" )) (defun random-signature () (concat (if (null random-signature-head) "" random-signature-head) (nth (random (length random-signature-list)) random-signature-list) (if (null random-signature-foot) "" random-signature-foot))) (defvar random-face-list '("iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAMFBMVEVHQD/3+vz9+/4lPlF4 kLzv5t79/f/9+PWnTVUiJy5JV3KkoIj////Mx8YWFBP9+vzFQ3bFAAACMUlEQVQ4jb3RP2gTURwH 8HPocCmNnNAI1SJZMikOl+UibpkOHCqciiGUy/CEehKXFFGKa8ClUJd3B2fksvRC04QaJTnOUIcb JJJ2SKDGSNcr+KNXMEMQnodJte+Srj5404fv+/15TOucw/xXcMj1c8CbBl/2EbpxdwrIO8Idbis2 BRobPM9XKfgUy1xOvxP5BM/HL3FZOeKMQB4gbmmxkTR5gzeaOekkNgbEPZLSKcM0/Kf428vzS8hR /kDWWcvbvQ1ewP69xfWlyLhGZvdZ/gO3KcykKqqlcWvWqjICRc69ekl2hDnJP2r0QX4VjbtyCPHk A8zMdqTKCEY1Wu0s4hbrQsLg6/FENNc5UZTTAR20oJeKoqgmC902cs5M3v65Z5mm2CgmulGkoH/Q cl4wltVJN0IRP6Cc3dVuT7X7/frMr4klVsyE1RDWvwVhBSeTSVEAWw7AMS6K2ATYukYD+ghFERiA 6oCCNmEhLgLW4YJHgfMY4LWoY4AjQsOxDsWkvg4A3WnAuDpcpGFBB8MEH+waDUMtXcF+Da2WpmHe lr5iF7uaRSdapNdnsAug9pbpxIAM1bDfk0boAVso87yAwdXfogD422V9YKsTa39isnrZxdtXg/C5 gI/KLvNmIrEShh/lQ3Yyscfq298B9hUaHPQwfHh/OFuY8wJdyQeVQ/LUtTZt+gedQaFRbl4B1TSb NHhaKfw+mq6EmMB/cKUQc0++6RHCBbpKWbW/ZSlwEAnAb3NDHSx48elnAAAAAElFTkSuQmCC" "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAIAAAC1eHXNAAAACXBIWXMAAAsTAAALEwEAmpwY AAAAB3RJTUUH1gsWAiw4GKZrngAAAaVJREFUWMPtWDGOxCAMTJD/s9F9BCqae8K9556wTarwkVV+ xBUgCxFizBKzKc5KsckiMdjjwfbsvZ9kbDEm+7Jv2/Hf8BEmMSvuemaCOI57E2hADsRuHbVg1eI4 EES22YfisuqUInSMlBAtgieq9BT0B+EDwtR0D/vHIY3j5/tFvA71B+7NBCGSL7/PL0QQfnNsxvuW n+sSqa7Qge/lvQhPPwKlXH/s25YGqKmG6BFfoBcNI41KSc48QXiyA3XGFJq8F+9SYy73luIIzmKM dIBUk+rJGQRyFKEsxlTzJVvzts3H/mWksOIZ7nLvt+WLnMMg8LSqH9LBAsxbvpShh5CkqCjF3jV7 LZ6KyhdCyhAEQkFZSxU2VTxa94Cp6z1xQRXO3HNZXcgEl/ryTG+gNdGrgoYhqLLnxjqW8nRYVZZu pC7sUXvaYDi7b6tQYtStC619J/S5Z04X5i3ZnOOsvB3aR2XjKH5VoCRALKuOwbKOmX0C86BVh0Ka Pxzj1qcV5lsXVYscEAryI15g1iECejbHqj9ar/5q/9dmXsweWvvn9NCas/gPmFCS6kuMMdAAAAAA SUVORK5CYII=" )) (defun random-face () (concat (nth (random (length random-face-list)) random-face-list))) (setq gnus-posting-styles;;{{{ '((".*" (name "koocyton") (face random-face) (address "koocyton@gmail.com") (organization "http://kt.doopai.com") (eval (setq mm-coding-system-priorities '(iso-8859-1 cn-gb-2312 utf-8))) (signature random-signature) ) ("^cn\\.comp" (name "koocyton") (face random-face) (address "koocyton@gmail.com") (organization "http://kt.doopai.com") (eval (setq mm-coding-system-priorities '(iso-8859-1 cn-gb-2312 utf-8))) (signature random-signature)) ("^tw\\.comp" (name "koocyton") (face random-face) (address "koocyton@gmail.com") (organization "http://kt.doopai.com") (eval (setq mm-coding-system-priorities '(iso-8859-1 utf-8))) (signature random-signature)) ))
M-x gnus[RET] 就会看到一个角马头像的启动画面,l/L切换隐藏还是显示没有未阅读邮件的组
如果没有找到mail.misc/sent.mail/sent.news,就直接到*Group buffer*上按 G m,输入缺少
的邮件组,再输入nnml,或是你的邮件保存格式,按q退出gnus,再启动gnus,就能看到了邮件了。






