尝试了多种方法后,我现在使用
offlineimap来同步我的电脑和谷歌服务器之间的邮件。然后,
Gnus从本地机器上读取邮件。使用
Postfix将邮件发送到Gmail SMTP服务器。这种设置的优点是:在gnus中阅读/发送电子邮件不涉及等待服务器(快速),可以在离线时阅读/发送电子邮件(联机后传递给服务器)。如果你喜欢使用RMail,你可以用它代替gnus。
这是我在Ubuntu 13.10上所做的。
定期运行的offlineimap会将邮件放入~/Maildr/Gmail中。
~/.offlineimaprc的内容:
[general]
accounts = Gmail
maxsyncaccounts = 2
[Account Gmail]
localrepository = Gmail-local
remoterepository = Gmail-remote
status_backend = sqlite
[Repository Gmail-local]
type = Maildir
localfolders = ~/Maildir/Gmail
[Repository Gmail-remote]
type = Gmail
remoteuser = YourName@gmail.com
remotepass = YourPass
folderfilter = lambda foldername: foldername in ['INBOX', 'Dev']
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
gnus从~/Maildir/Gmail中读取邮件。
在emacs中,变量gnus-home-directory被设置为"~/Documents/gnus"。"~/Documents/gnus/.gnus"的内容如下:
(setq gnus-select-method
'(nntp "localhost"))
(setq gnus-secondary-select-methods
'((nnmaildir "GMail" (directory "~/Maildir/Gmail")) ; grab mail from here
(nnfolder "archive"
(nnfolder-directory "~/Documents/gnus/Mail/archive") ; where I archive sent email
(nnfolder-active-file "~/Documents/gnus/Mail/archive/active")
(nnfolder-get-new-mail nil)
(nnfolder-inhibit-expiry t))))
发送邮件:
emacs配置变量:
mail-user-agent设置为'gnus-user-agent'
send-mail-function设置为'sendmail-send-it'
user-mail-address设置为"YourName@gmail.com"
最棘手的事情是设置Postfix,这在这里有明确的描述:
进一步的评论以回答问题:
程序offlineimap由文件~/.offlineimaprc控制。当offineimap运行时,它将在目录~/.offlineimap中保留信息。您可以阅读文档以了解其工作原理的解释。
关于发送邮件: 实际上,我曾经直接从emacs发送邮件。这涉及到许多琐碎的事情。结果证明,让postfix处理它要容易得多。例如,我在Gnus中使用几个不同的电子邮件帐户发送邮件; 现在我通过posting-styles告诉gnus这一点,并让postfix担心哪个地址应该发送到哪个服务器以及如何处理。