??xml version="1.0" encoding="utf-8" standalone="yes"?>
“上周,DCC 3.0 PR1的第一预览版本已经发布了。”接M席的Debian创始Z恩·默多克在他的blog中这样写道。他补充说下一版本在本周或下周早些时候发布?
他说W一版只能运行在32位和64位的x86架构上,以及Intel的Itanium芯片l上?
在组l的邮g列表中一邮件中Q默多克DCC的Linux产品是基于最新版Debian开发的Qƈ不断添加安全更C保该操作系l符合Linux标准基础目QLSBQ所讑֮的标准?
q一目的目的是开发和推广一pd能提高不同Linux厂商的Linux产品之间兼容性的标准?
“我们认为,在DCC 3.0 PR1中,我们已经辑ֈ了LSB 3.0的标准。”在发给邮g列表的邮件中Q默多克提到q一点,但同时他该组l刚刚开始对它的兼容性进行测试?
同时Q该l织已经受到了DebianC的一些批评。一个模仿该l织主页的网站已l出玎ͼ取笑说该l织试图通过使用DCCq个~写词来传播Debian的商标?
q个假网站上宣称Q“开讄目的在于x那种暗含在羃写中可以随意用Debian商标的想法”。上面没有列出网站的建立者,但一位该目最q的领导者选D中的候选hQDebian开发h员马修·加LQ被列在理人员联系名单中?
启动 gnus 非常单,在你?Emacs 里执?M-x gnus 命o可以了Q如果你惛_另一?frame 里启?gnusQ那执?M-x gnus-other-frame 。但是,现在先别启动Q因为我们先得进行一些配|?gnus 启动的时候会去读你写?~/.gnus.el 里的内容Q就?Emacs 启动时要?~/.emacs 一栗当然你也可以把?gnus 的配|写?~/.emacs 里,但是最好还是?gnus 自己的配|文件?
首先Q我们要讄新闻服务器,也就?nntp 服务器, nntp ?Network News Transfer Protocal 的羃写,国内提供 nntp 服务的主Z多,教育|内能访问的nntp 服务器,我只扑ֈ了一? news.cn99.comQ好了,现在在 ~/.gnus.el 里加上这一句:
? 在,我们q行接收邮g的设|。玩*nix 的老鸟都知道,*nix 的哲学是每个E序"Only do one thing, and do it well." 因此有?sendmail, fetchmail, mailreader {等一大票E序来干收发邮gq个zd。严格地? Emacs(gnus) 的分工是?mailreaderQ也是说我们用 emacs 来写信,然后由另一个程序,比如sendmail 来把信发出去Q收信的q程也是cM的,׃个程?比如 fetchmail) 负责把信取回来,攑֜一?spool 里面Q然后我们用 Emacs 来读信。你先别跑,我不是让你去配置 sendmail q样的大怪物Q我们^常发发信、收收信q点活儿,用不着?sendmail 老h家的大驾?
我们用的最多的邮g收发方式是这LQ有?POP3 服务器,收信时我们到那里dQ有?SMTP 服务器,发信时我们把信送到那里厅R这点小zdQ现?emacs 自己可以搞定了。现在我们看看怎么讄Q?
首先我们讄 POP3 服务器:
然后我们q要告诉 gnus 如何存放接收来的邮gQ?gnus 把这个叫?backendQ最常用的方式是 nnfolderQ另外还?nnmbox, nnml {其它几U方式,我们选择其中一U就可以了:
? 后我们设|?SMTP 服务器,采用 smtp 方式发送邮仉要一个小E序 smtpmail.el, q个E序现在已被U_了官方的 EmacsQ如果你用的是最新的 CVS EmacsQ比?Emacs22, Emacs23 {,已l包含了q个E序。你可以查一? emacs 的安装目录中 lisp/mail/ 目录下有没有q个文gQ如果没有的话,只好自׃载、安装了。现在我们看看如何设|:
中文Q中文!永远都是头痛的事ѝ把下面q些加在 .gnus.el 里面吧:
另外Q有些用 web 方式发出的邮仉?htmlQ加入下面的讄Q只看其中的plain text 部分Q?
现在我们可以选择几个自己喜欢的新ȝQ作为默认的新闻l:
现在C关键时刻Q成败在此一举:
M-x gnus
嘿嘿Q傻g吧, Emacs 没反应了Q!Q?没关p,表担心,q是正常现象Q? gnus 是个单线E程序, nntp 服务器又慢的要命Q你要是在公|,说不定能好点儿)Q多{一会儿好了,一般也׃三分钟,q气不好的话q要长些Q什么?你等不及了,要编辑文Ӟ那就? 好麻烦您老再开一?Emacs 吧!
如果一切正常, gnus 启动完成的时候,我们׃看到 group bufferQ这里列Z我们订阅的新ȝQ类DP
新闻l前面的数字Q表C个组里还有多帖子没读过。现在,只要把光标移动到要读的新ȝ上面Q敲下回车键可以读帖子了?
不要 kill 掉这?buffer 哟,我们l常需要回到这?buffer 。如果你d了新闅R信Ӟ想退?gnusQ只要在q个 buffer 里按?q 键就可以了?
当我们阅L个新ȝ的时候,׃q入 summary bufferQ其中列Z作者和帖子的标题,如果是跟帖,会羃q表C,象下面这P
如果要读贴子Q只要按下空格键p了。按?q 键将q回?Group buffer.
?newsgroup 里发帖子?post article, 发脓子很单,只要我们按下 a q一个键可以了Q写完后 C-c C-c 发出Q如果写了一半儿惛_消,则键?C-c C-k ?
?newsgroup 回帖子叫 follow upQ按?f 键就行了Q但是这样回帖ƈ不引用原作者的文章Q如果你惛_用原作者的文章Q那q F 键?
如果你想和文章的作者私下聊聊,那就?r 或?R 键,l原作者回信叫做reply to, q时只有原作者一个h能收CQ与 follow up 不同Q?follow up 的时候,凡是订阅了新ȝ的h都能d信?
按照手册中的说法Q我们通过 POP3 接收到的信g会被送到一个叫?mail.misc 的组里, gnus 会自己徏立这个组Q但是我找了好几天也没找到。怎么办?没关p,我们自己Z个:
?Group buffer 里,键入 G mQ系l提C我们输入组名: mail.miscQ然后提C我们输?server 名,此时我们输入: nnfolderQ注意,服务器名要与你选择?backend 一致?
? 立完成之后,我们可以?Group buffer 里键?^Q此时我们将q入 Server buffer, 在这里我们将看到自己选择的服务器Q比如: news.cn99.com 。其中, nnfolder 服务器里应该有我们新建的 mail.misc l。我们在服务器名上输入回车,q样p看到q个服务器中的组Q在惌订阅的组上面按下'u'键即可订阅这个组Q取消订阅同样也是用q个键?
?gnus 发信极其单,随时都可以,?m 一键搞定, gnus 会新Z个buffer 让我们写?
写完信后 C-c C-c 发出, 不想要了?C-c C-k ?
现在我们已经完成基本d了,但是大功告成了吗Q?br> 没有Q苦难才刚刚开?.....
我看C很好的帖子Q怎么才能保存下来Q?br> 我想备䆾自己发出的所有信Ӟ怎么办?
我想删除信箱里的信gQ怎么办?
我的联系人很多,我想Z地址,怎么办?
我想把不同的人发来的信,分别攑֜不同的信里Q怎么办?
你可能已 l注意到了,当你读过一个帖子之后, Gnus 会自动在帖子的最左边加上一?R Q这是标记。这些标记有些是我们自己加上的,有些?Gnus 自动加上的。标C?R 一个,q有很多W号?Gnus 用来当作标记W号。这些标记表明了帖子的状态,比如 R 表示q个帖子你已l读q了?
? 在我们来看看常见的标记是什么意思。标记分Z大类Q一cL“已?read)”标讎ͼ一般用字母表示Q比?R, r, O, E {等Q另一cL“未?unread)”标讎ͼ一般用ҎW号表示Q比?!, ?, *{等。标记的数量比较多,但我们只要了解常见的几个标记是什么意思就行了?
Gnus 之所以要把帖子分为“已诠Z和“未诠Z两c,是因为对q两cd子,Gnus 采取的处理方式不同。如果一个帖子别标记为“已诠Z,那么当你dq个group(?q 命o)以后Q下ơ再q入的时候,你就不会再见到它了(除非你要求gnus 把老帖d来给你看Q,只有那些被标Cؓ“未诠Z的帖子和新帖才会显C给你看?
?M c 或?Meta-u 清除所有标讎ͼ也就是说标记为“未?unread)”?
要想怹保存有h值的帖子Q也是说把帖子拯到自q机器上保存v来,那么可以打开 gnus ?cache 功能Q在 .gnus.el 中加入:
以后看到有h值的帖子Q只要按?* 键,q篇帖子׃被拷贝到本地?cache 中保存v来,q样即服务器那边删除了q篇帖子Q也没关pM。如果你又不惌了,?Meta-* 可以把帖子从缓存中删掉?
如果你想查看自己保存在缓存里的帖子,只要?summary buffer 中用 'Y c' 命o卛_?
可能你每天都要收到大量的邮gQ有的是亲朋好友寄来的,有的是你订阅的maillist 寄来的。如果这些邮仉攑֜ mail.misc q一个组里,那么很快q里׃拥挤不堪了,说不定有些重要的信g会被漏看?
?Gnus 里,我们可以Ҏ到的邮gq行分类Q比如把所有来?tsinghua.edu.cn 的信都放?mail.tsinghua q个l里。我们可以这样做Q?
? 先我们徏一?mail.tsinghua l,?Group buffer 里键?G m , 然后输入 "mail.tsinghua", 接着pȝ会让我们选择 MethodQ此时输?nnfolder"Q这?mail.tsinghua q个l就建立好了?
然后我们讄 nnmail-split-methods 变量Q在 .gnus.el 中加入:
q? 样以后凡是来?tsinghua.edu.cn 的信仉会被攑ֈ mail.tsinghua q个l里厅R这个变量的值是一个由 list l成?listQ每?list ׃个部分组成,前面的是l名Q比?mail.tsinghua", 后面的是个正则表辑ּQ?Gnus 会按q个正则表达式的要求到邮仉L索,然后把找到的邮g攑֜指定的组里面?
q是一U简单的分类方式Q如果你觉得不过瘾,可以试试 nnmail-split-fancyQ那是一U更灉|的分cL式?
需要注意的一ҎQ我们刚才用的术语都是“组(group)”,而没有说“邮件夹”。实际上Q在 Gnus 里面l就是邮件夹Q邮件夹是l,我们说过Q?Gnus 采用同样的方式处理信件和新闻Q因此它q不对组和邮件夹q行区分?
既然?groupQ那么你可以取消订阅,假如你把x友的来信都放在mail.lovers l里面,随后不小?unsubscribe 了这个组Q那么你p不到她们的来信了Q要是你的女朋友跟你分了手,千万别?GnusQ就?Gnus 的手册里说的Q?
Gnus gives you all the opportunity you could possibly want for shooting yourself in the foot.
基本上所有的邮g客户端都有一个“已发送邮件”或是?sent ”的邮g夹,你自己写的信发送出ȝ同时Q都会在q里都有一个备份,因ؓ我们有时候需要看看自己发出去的信件?
?Gnus 里做到这一点很ҎQ而且它还可以自动把你发出ȝ邮g分分c,比如把发出去的信攑֜一个组里,把你?newsgroup ?post 的帖子放在另一个组里?
现在我们看看怎么做到q一点,比如我们x自己发的信备份到 mail.sent.mail l里Q把自己 post 的帖子备份到?mail.sent.news l里Q那么首先我们徏立这两个l:
?group buffer 里键?G m Q然后输入组?mail.sent.mail", 接着是输?"nnfolder", q个l就建好了,然后用同L方式建立"mail.sent.news"l?
最后在.gnus.el 里加入:
当你惛_除一个邮件的时候,你先得搞清楚它是?news q是?mail, 因ؓ你是没有权力删除新闻l里的文章的Q就象你?BBS 的时候一Pq你看C不爽的帖子Q你也删不了它,除非你是版主?
? q里我还要多一句嘴Q?newsgroup 理的不?bbs 那样严格Q?bbs 的每个版都有若干版主q行理Q删除无关的文章Q封不按规矩发帖的人等{,?joke q种大板Q有8个版M阵以待,随时准备删脓h? newsgroup 是没有版ȝ理的Q一般只?nntp 服务器的理员才有删帖的权力Q但是一?nntp 服务器上有成千上万的 groupQ管理员才没旉删帖这U事儿呢Q他们一般是制定一些规则,让系l自动删除一些过期的帖子。因此,如果你在 newsgroup 上发了个垃圾帖子Q它有可能在那里呆上好几年?
正因为如此,我们? newsgroup 上发帖子一定要慎重Q不要发垃圾邮g什么的。更严重的是Q如果你发了q种邮gQ那么订阅这个组的h׃认ؓ你很不礼貌,不懂规矩Q他们可能就会在自己? Gnus 里增加一条规则,从此以后凡是你发表的帖子Q他们都不下载、不看?
好了Q言? 正传Q我们谈谈怎么删除邮g。有两种Ҏ可以删除邮gQ一U是使用邮g专用命o` B DEL', 也就是现键入'B'Q然后再?Delete'键,q时pȝ会询问你是否真的要删除什么的Q回{?yes 可以了。但是这U方法太暴力了,在Gnus 里有一U更好的Ҏ删除邮gQ那是l邮件加上“保质期”,也就是说Q让Gnus 替你q删除邮件这个活儿,它会忠实地按照你的要求,删除“过了保质期”的邮g?
怎样l邮件加上“保质期”呢Q很单,在邮件组?summary buffer 里,?E 键就可以l光标所在的邮g贴上 expirable 的标{,此时帖子前面会出C个字?E 作ؓ标记Q然后你׃用管了,C期限Q?gnus ׃自动删除它们?
你也可以?E 命oQ给新闻l里的帖子加?expirable 的标{,但是q毫无意义,因ؓ不论是你q是 Gnus 都无权删除新ȝ里的帖子?
Gnus 默认的保质期?天,如果你觉得时间不合适,可以自己讄Q更改变?
nnmail-expiry-wait 的值就行了Q在 .gnus.el 里加入:
你还可以l不同的l设|不同的保质期,象下面这P
q? 样就?mail.tsinghua q个l的保质期设?1天, mail.misc l设?天等{。除了数字,q有另外两个W号可以用,一个是 immediate Q表C立卛_除标期的邮gQ另一个是 never Q表C永不删除过期的邮gQ“如果你一定要加个期限Q?Gnus 希望是一万年。?
如果你的联系人比较多Q没办法全部Cq些人的 email 地址Q想Z地址,该怎么办呢Q?
有两个种Ҏ可以完成q个dQ一U是单的Q但是不太灵z;另一U麻烦点儿,但是功能很强?
先说单的Q实际上q是一U很古老的Ҏ了,那就是采?mail alias Q地址别名Q,你只要把联系人的邮g地址和别名都写在 ~/.mailrc 文g里就行了Q语法很单,每个联系人占一行,像下面这P
发信的时候,?To: 后面输入别名Q比?heyyyQ然后按I格键, Gnus 会自动把全名替你插进厅R?
然后我们再说复杂点儿的,其实也不复杂Q只是麻烦点儿,要自己去下蝲一个Y件包Q到q里:
http://bbdb.sourceforge.net/
M载一个叫?bbdb 的Y件包Q全名是 "Insidious Big Brother Database"。不知怎么搞的Q现在一提数据库我就开始反胃,不过q个 bbdb 只是?Emacs 扩展Q全都是? elisp 写成的,q不是那U巨无霸似的操作J琐的数据库理pȝ。bbdb 很小Q压~包只有300?k ?bbdb 只是建立了一个~/.bbdb 文gQ然后把你的联系人每个一行地写在里面|了Q这是个U文本文Ӟ不过最好不要自q辑这个文Ӟ可以?bbdb 的命令往里添加联pMh?
下蝲回来以后解开Q然?make 一下,象这P
然后?bbdb-2.35 目录下的 lisp 子目录整个扔?site-lisp 下面p了:
q有文档Q如果你要看的话也要自己装:
如果你觉得太ȝ了,也可以解开压羃包后Q直接把 lisp/ 子目录整个扔?site-lisp 下面Q?bbdb 的手册中说可以这P不过我没试过?
好了Q把下面q些写在 .gnus.el 里面Q?
然后重新启动 Gnus, 或者是?Group buffer 中用 r 键,?Gnus 重新d~/.gnus.el
bbdb 使用h很简单,W一ơ用的时候,要用"M-x bbdb-create"命o创徏联系人,此时 bbdb 会问你一些相关的问题Q比如联pMh? Name, company, Network Address(q里要添 email 地址){等Q你如实回答是了。然?bbdb 会创Z个~/.bbdb 文gQƈ把你的联pMh加进厅R?
以后你可以随时用"M-x bbdb-create"命od联系人,也可以用 `M-x bbdb RET RET' 命o?bbdb 把所有联pMh昄l你看?
不过Q?bbdb 最方便的地方在于你写信的时候,只要?To: 面用 TAB 键, bbdb ׃把联pMh替你填好Q如果不对,ql按 TAB 键, bbdb 会填下一个,循环往复?
q有一个方便的地方Q如果你?Summary buffer 中的某个邮g或帖子上?: 建, bbdb 自动把发信人替你加到地址KQ方便吧Q?
说了q么多,也只是把Gnus最基本的功能介l了一下,实际上,Gnusq有很多高的功能可以发掘。那去?Gnus ?manual 吧,我觉?Gnus 的手册写的真不错Q语a诙谐q默Q读h味盎然?
当你用了一D|?Gnus 以后Q你很隑ֆd它了Q那时候你׃理解下面q句话:
No Gnus is bad news.