Thursday, December 11, 2008

在Emacs中收发sohu的信

原来一直在网页中写博客,但发现这样不得不再开一个浏览器。由于Emacs一直是
开着的,而且blogger也支持邮件发信,所以在Emacs中配置了一下Gnus用来收发信
件,这样,就可以在Emacs中写博客了。
这就是配置文件。
;;.gnus.el
(require 'smtpmail)
;;=======================配置收发信件========================================

(setq load-path (cons (expand-file-name "~/develop/gnus/lisp") load-path))
(require 'gnus-load)

;;in your .emacs file, or wherever you keep such things.

;;To enable reading the Gnus manual, you could say something like:

(require 'info)
(if (featurep 'xemacs)
(add-to-list 'Info-directory-list "~/develop/gnus/texi/")
(add-to-list 'Info-default-directory-list "~/develop/gnus/texi/"))

;;; ;;; .gnus.el --- gnus configure file

;;; ;; Copyright (C) 2007 fxl

;;; ;; Author: fxl <fxlzju@gmail.com>
;;; ;; Keywords: mail, news,

;;; ;; for newsgroup
(setq gnus-select-method '(nntp "news.cnusenet.org"))
;;; ;; for mail
(setq gnus-secondary-select-methods '((nnfolder "")))
(setq gnus-use-cache 'passive)
(gnus-add-configuration '(article
(vertical 1.0
(summary .4 point)
(article 1.0))))
(setq gnus-thread-sort-functions
'(
(not gnus-thread-sort-by-date)
(not gnus-thread-sort-by-number)
))
;;; ;; chinese font set
(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))

;;; ;; only see the text plain if sended with html format
(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
; '("cn.comp.os.linux"))
; '("gnu.emacs.help"

;;; (setq user-full-name "yourname") ;; 外发的邮件采用这个名字
;;; (setq user-mail-address "your@gmail.com")
;;; ;; save the mail on web server
;;; (setq pop3-leave-mail-on-server t)
;;; (setq mail-sources
;;; '((pop :server "pop.gmail.com"
;;; :port 995
;;; :user "your@gmail.com"
;;; :connection ssl
;;; :leave t)))


;;; (setq gnus-message-archive-group
;;; '((if (message-news-p)
;;; "nnfolder:mail.sent.news"
;;; "nnfolder:mail.sent.mail")))

;;; (setq message-send-mail-function 'smtpmail-send-it)
;;; (setq smtpmail-default-smtp-server "smtp.gmail.com")
;;; (setq smtpmail-smtp-service 587)
;;; (setq smtpmail-starttls-credentials
;;; '(("smtp.gmail.com"
;;; 587
;;; nil
;;; nil)))
;;; (setq smtpmail-auth-credentials
;;; '(("smtp.gmail.com"
;;; 587
;;; "your@gmail.com"
;;; nil)))

;;; (setq gnus-posting-styles
;;; '((".*"
;;; (name "name")
;;; (face "")
;;; (address "your@gmail.com")
;;; (organization "cesc")
;;; (signature-file "~/Mail/signature")
;;; )))


(setq gnus-select-method '(nntp "news.cn99.com")
gnus-secondary-select-methods
'((nnml "")
;; (nntp "news.individual.net")
;;(nntp "news.gmane.org")
(nntp "news.newsfan.net")
(nntp "news.yaako.com")))

(setq gnus-default-subscribed-newsgroups
'("gnu.emacs.help"
"cn.comp.os.linux"
"comp.os.linux.announce"
"comp.os.linux.development.apps"
"comp.os.linux.development.system"
"comp.os.linux.misc"
"comp.os.linux.answers"))


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

;然后我们还要告诉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 "westnorth") ;; 外发的邮件采用这个名字
(setq user-mail-address "westnorth@gmail.com") ;;外发的邮件采用这个地址
;(setq smtpmail-default-smtp-server "smtp.xxx.xx")
;(setq smtpmail-smtp-server "smtp.xxx.xx")
(setq user-full-name "Godfrey Ma")
(setq smtpmail-local-domain "sohu.com")
(setq smtpmail-sendto-domain "sohu.com")
(setq user-mail-address "mylazylifeblog@sohu.com")

;(setq smtpmail-auth-credentials
; '(("hostname" 25 "username" "password")))


; (setq smtpmail-starttls-credentials
(setq smtpmail-auth-credentials
'(("SMTP.sohu.com" ;; SMTP服务器
25
"mylazylifeblog" ;; 用户名
"******"))) ;; 密码
(setq smtpmail-default-smtp-server "SMTP.sohu.com")
(setq smtpmail-smtp-server "SMTP.sohu.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))

;有关中文设置的更详细的说明参见拙文 Gnus的编码设定。

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

No comments:

Post a Comment