还是换地吧,到blogbus- -| 回首页 | 2005年索引 | - -用gnus收发邮件、泡新闻组(2)[转载自水木社区]

用gnus收发邮件、泡新闻组(1) [转载自水木社区]- -

                                      

发信人: brep (哪个虫儿敢做声), 信区: Emacs
标 题: 用gnus收发邮件、泡新闻组(1)
发信站: 水木社区 (Fri May 27 21:34:18 2005), 站内

* 用gnus收发邮件、泡新闻组(1)

如果你象我一样,接触emacs是从 Outlook Express 开始的,已经用惯了
Foxmail 这类邮件客户端,习惯了它们的工作方式,在 linux 下用的也是工作方
式类似的邮件程序,那么改用 Gnus 将对你是一种文化上的冲击,换句话说,你
得先洗洗脑。

Gnus 与传统的邮件阅读程序完全不同。Gnus 最初的定位是 newsreader,是用来
阅读 newsgroup 中的新闻的,Gnus 采用相同的方式来处理新闻和邮件。因此,
如果你还打算用 Gnus 收发邮件,就要准备接受 Gnus 的工作方式,

** 设置新闻服务器

启动gnus非常简单,在你的Emacs里执行`M-x gnus'命令就可以了,如果你想在另
一个frame里启动gnus,那就执行 `M-x gnus-other-frame' 。但是,现在先别启
动,因为我们先得进行一些配置。gnus启动的时候会去读你写在`~/.gnus.el'里
的内容,就像Emacs启动时要读`~/.emacs'一样。当然你也可以把对 gnus 的配置
写在`~/.emacs'里,但是最好还是使用gnus自己的配置文件。

首先,我们要设置新闻服务器,也就是nntp服务器,nntp是 Network News
Transfer Protocal的缩写,国内提供nntp服务的主机不多,教育网内能访问的
nntp服务器,我只找到了一个: news.cn99.com,好了,现在就在`~/.gnus.el'
里加上这一句:
(setq gnus-select-method '(nntp "news.cn99.com"))

** 设置邮件服务器
现在,我们进行接收邮件的设置。玩*nix的老鸟都知道,*nix的哲学是每个程序
"Only do one thing, and do it well." 因此就有了 sendmail, fetchmail,
mailreader 等等一大票程序来干收发邮件这个活儿。严格地说Emacs(gnus)的分
工是做 mailreader,也就是说我们用emacs来写信,然后由另一个程序,比如
sendmail 来把信发出去;收信的过程也是类似的,由一个程序(比如fetchmail)
负责把信取回来,放在一个spool里面,然后我们用Emacs来读信。你先别跑,我
不是让你去配置sendmail这样的大怪物,我们平常发发信、收收信这点小活儿,用
不着劳sendmail老人家的大驾。

我们用的最多的邮件收发方式是这样的,有个POP3服务器,收信时我们到那里去
取;有个SMTP服务器,发信时我们把信送到那里去。这点小活儿,现在emacs自己
就可以搞定了。现在我们看看怎么设置:

首先我们设置POP3服务器:

(setq mail-sources
'((pop :server "pop.163.com" ;; 在这里设置pop3服务器
:user "brep" ;; 用户名
:port "pop3"
:password "mypasswd"))) ;; 密码

然后我们还要告诉gnus如何存放接收来的邮件,gnus把这个叫做backend,最
常用的方式是nnfolder,另外还有nnmbox, nnml等其它几种方式,我们选择其中
一种就可以了:

(setq gnus-secondary-select-methods '((nnfolder "")))

然后我们设置SMTP服务器,采用smtp方式发送邮件需要一个小程序smtpmail.el,
这个程序现在已被纳入了官方的Emacs,如果你用的是最新的CVS Emacs,比如
Emacs22, Emacs23等,就已经包含了这个程序。你可以检查一下emacs的安装目
录中 lisp/mail/ 目录下有没有这个文件,如果没有的话,就只好自己下载、安
装了。现在我们看看如何设置:

(setq user-full-name "Brep") ;; 外发的邮件采用这个名字
(setq user-mail-address "brep@163.com") ;;外发的邮件采用这个地址
(setq smtpmail-auth-credentials
'(("smtp.163.com" ;; SMTP服务器
25
"brep" ;; 用户名
"mypasswd"))) ;; 密码
(setq smtpmail-default-smtp-server "smtp.163.com")
(setq smtpmail-smtp-server "smtp.163.com")
(setq message-send-mail-function 'smtpmail-send-it)

** 中文设置

中文!中文!永远都是头痛的事儿。把下面这些加在`.gnus.el'里面吧:
(set-language-environment 'Chinese-GB)
(setq gnus-default-charset 'chinese-iso-8bit
gnus-group-name-charset-group-alist '((".*" . chinese-iso-8bit))
gnus-summary-show-article-charset-alist
'((1 . chinese-iso-8bit)
(2 . gbk)
(3 . big5)
(4 . utf-8))
gnus-newsgroup-ignored-charsets
'(unknown-8bit x-unknown iso-8859-1))

另外,有些用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")))

** 订阅新闻组

现在我们可以选择几个自己喜欢的新闻组,作为默认的新闻组:
(setq gnus-default-subscribed-newsgroups
'("gnu.emacs.help" ;; 这里不错噢,有关emacs使用的问题都在这里讨论
"cn.comp.os.linux")) ;; 这里也有一个emacs小团伙,
;; 有空去凑个热闹吧,中文的哟

** 启动gnus

现在到了关键时刻,成败在此一举:

M-x gnus

嘿嘿,傻眼了吧,Emacs没反应了!!! 没关系,表担心,这是正常现象,gnus
是个单线程程序,nntp服务器又慢的要命(你要是在公网,说不定能好点儿),
多等一会儿就好了,一般也就两三分钟,运气不好的话还要长些,什么?你等不
及了,要编辑文件?那就只好麻烦您老再开一个Emacs吧!

** Group buffer

如果一切正常,gnus启动完成的时候,我们就会看到group buffer,这里列出
了我们订阅的新闻组,类似这样:

49: gnu.emacs.help
6: cn.comp.os.linux
8: nndoc+gnus-help:gnus-help
0: nndraft:queue
0: nndraft:drafts

新闻组前面的数字,表示这个组里还有多少帖子没读过。现在,只要把光标移动
到要读的新闻组上面,敲下回车键就可以读帖子了。

不要kill掉这个buffer哟,我们经常需要回到这个buffer。如果你读完了新闻、
信件,想退出gnus,只要在这个buffer里按下 `q' 键就可以了。

** Summary buffer

当我们阅读某个新闻组的时候,就会进入summary buffer,其中列出了作者和帖
子的标题,如果是跟帖,会缩进表示,象下面这样:

------------------------------------------------------------------
[ 51: 空壳壳 ] 已调试好的Emacs下载(WIN版本)
[ 283: 空壳壳 ] 这个包的.emacs配置文件
[ 5: Brep ]
  < 4: watercloud > Re: 已调试好的Emacs下载(WIN版本)
[ 9: It's me FKtPp ;) ]
[ 2: 空壳壳 ]
[ 7: It's me FKtPp ;) ]
------------------------------------------------------------------

如果要读贴子,只要按下空格键就行了。按下 `q' 键将返回到 Group buffer.

** 发帖、回帖

在newsgroup里发帖子叫post article, 发贴子很简单,只要我们按下`a'这一个
键就可以了,写完后`C-c C-c'发出,如果写了一半儿想取消,则键入`C-c C-k'。

在newsgroup回帖子叫follow up,按下`f'键就行了,但是这样回帖并不引用原作
者的文章,如果你想引用原作者的文章,那就用`F'键。

如果你想和文章的作者私下聊聊,那就用 `r' 或者 'R' 键,给原作者回信叫做
reply to, 这时只有原作者一个人能收到信,与follow up不同,follow up的时
候,凡是订阅了新闻组的人都能读到信。

** 我的信箱哪里去了?????????

按照手册中的说法,我们通过POP3接收到的信件会被送到一个叫做`mail.misc'
的组里,gnus会自己建立这个组,但是我找了好几天也没找到。怎么办?没关
系,我们自己建一个:

在 Group buffer 里,键入 `G m',系统提示我们输入组名:mail.misc,然后
提示我们输入server名,此时我们输入: nnfolder,注意,服务器名要与你选择
的backend一致。

建立完成之后,我们可以在Group buffer里键入`^',此时我们将进入Server
buffer, 在这里我们将看到自己选择的服务器,比如:news.cn99.com。其
中,nnfolder服务器里应该有我们新建的`mail.misc'组。我们在服务器名上输入
回车,这样就能看到这个服务器中的组,在想要订阅的组上面按下'u'键即可订
阅这个组,取消订阅同样也是用这个键。

** 发信

用gnus发信极其简单,随时都可以,按 `m' 一键搞定,gnus会新建一个
buffer让我们写信

To: 在这里添上收件人的email
Subject: 在这里写上标题
From: Brep
--text follows this line-- 千万不要删除这一行

写完信后`C-c C-c'发出, 不想要了就`C-c C-k'。

** 大功告成了吗?

现在我们已经完成基本任务了,但是大功告成了吗?
没有!苦难才刚刚开始......

我看到一篇很好的帖子,怎么才能保存下来?
我想备份自己发出的所有信件,怎么办?
我想删除信箱里的信件,怎么办?
我的联系人很多,我想建个地址簿,怎么办?
我想把不同的人发来的信,分别放在不同的信箱里,怎么办?
......
......
......

※ 修改:·brep 于 May 29 18:39:45 修改本文·[FROM: 59.66.78.*]
※ 来源:·水木社区 newsmth.net·[FROM: 211.151.90.*]

- 作者: twelve 2005年05月31日, 星期二 01:02

Trackback

你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=726695

回复

评论内容: