使用Emacs,将尽可能多的工作放到Emacs中来完成,这样可以提高工作效率。

1、安装必要的LISP插件和程序

$sudo apt-get install stunnel4

$sudo apt-get install mew //邮件处理程序

$sudo apt-get install w3m w3m-el //用于阅读HTML邮件

2、编辑emacs配置文件

;; mew收发邮件配置
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-use-cached-passwd t) 
(setq mew-pop-delete nil)
 
;; Optional setup (Read Mail menu for Emacs 21):
(if (boundp 'read-mail-command)
(setq read-mail-command 'mew))
 
;;(setq mew-prog-ssl "/usr/bin/stunnel4")
 
;; Optional setup (e.g. C-xm for sending a message):
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
(setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
(define-mail-user-agent
 'mew-user-agent
 'mew-user-agent-compose
 'mew-draft-send-message
 'mew-draft-kill
 'mew-send-hook))
(when (boundp 'utf-translate-cjk)
  (setq utf-translate-cjk t)
  (custom-set-variables
   '(utf-translate-cjk t)))
(if (fboundp 'utf-translate-cjk-mode)
(utf-translate-cjk-mode 1))
 
;;用w3m来读html格式邮件
(setq mew-mime-multipart-alternative-list '("Text/Html" "Text/Plain" "*."))
(condition-case nil
(require 'mew-w3m)
  (file-error nil))
(setq mew-use-text/html t)
 
;;mail account config
(setq mew-config-alist
 '(
("default"
(pop-server            "pop.126.com")
(name                  "126")
(user                  "chenbin512")
(mail-domain           "126.com")
(pop-auth              pass)
(pop-user              "chenbin512@126.com")
(smtp-user             "chenbin512@126.com")
(smtp-server           "smtp.126.com")
)
 
("gmail"
(pop-server            "127.0.0.1")
(pop-port              9959)
(name                  "gmail")
(user                  "chenbin512")
(mail-domain           "gmail.com")
(pop-auth              pass)
(pop-user              "chenbin512@gmail.com")
(smtp-user             "chenbin512@gmail.com")
(smtp-server           "127.0.0.1")
(smtp-port             4659)
)
 
("163"
(pop-server            "pop.163.com")
(name                  "163")
(user                  "pandachen512")
(mail-domain           "163.com")
(pop-auth              pass)
(pop-user              "pandachen512@163.com")
(smtp-user             "pandachen512@163.com")
(smtp-server           "smtp.163.com")
)
 )
)
 
;;设置邮件签名档
(setq mew-signature-file "~/Mail/signature")
(setq mew-signature-as-lastpart t)
(setq mew-signature-insert-last t)
(add-hook 'mew-before-cite-hook 'mew-header-goto-body)
(add-hook 'mew-draft-mode-newdraft-hook 'mew-draft-insert-signature)
 
;;设置邮件分类
(setq mew-refile-guess-alist
 '(("To:"
("@126.com"                       . "+Mail/126")
("@gmail.com"                      . "+Mail/gmail")
("@163.com"                      . "+Mail/163"))
("Cc:"
("@126.com"                       . "+Mail/126")
("@gmail.com"                      . "+Mail/gmail")
("@163.com"                      . "+Mail/163"))
(nil . "+inbox")))
 
(setq mew-refile-guess-control
 '(mew-refile-guess-by-alist))
 
;;设置邮件显示栏目
(setq mew-summary-form
 '(type (10 date) "      " (40 from) "    " t (0 subj)))
(setq mew-summary-form-extract-rule '(name))
 
注意:对于使用SSL/TLS加密连接的邮箱账户,pop-server和smtp-server需要配置成stunnel4服务器地址,如果stunnel4服务运行于本机,则地址为本机环回地址127.0.0.1

3、邮件分类

如果有多个邮箱,当然希望将各自的邮件归类到相应的邮箱中,方便阅读和查找,这就需要设置邮件分类规则(mew-refile-guess-alist)。通常按邮件账户分类比较常用,例如上面配置文件中的分类,当然也可以设置其它分类规则。

  • 邮件分类

设置了上面例子配置文件中的邮件分类规则后,按i键收取邮件后,并不能自动分类。所有账户的邮件都首先收到Inbox中。这时需要需要按ALT+o执行分类规则,所有邮件都会打上o的标记,然后按x键,邮件就会被分类到各自的邮箱里,并从Inbox中删除。

  • 查看分类邮件

邮件分类完成并从Inbox中删除后,要想查看某个邮箱的邮件,按g键,minibuffer提示输入邮箱目录,输入邮箱分类目录(比如+Mail/126)后即可查看分类好的邮件。

4、配置stunnel4

对于采用SSL/TLS连接的邮件服务器,需要配置stunnel来提供加密连接,例如:gmail

$sudo vim /etc/stunnel/stunnel.conf

; Protocol version (all, SSLv2, SSLv3, TLSv1)

sslVersion = SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32

chroot = /var/lib/stunnel4/

setuid = stunnel4

setgid = stunnel4

; PID is created inside the chroot jail

pid = /stunnel4.pid

; Some performance tunings

socket = l:TCP_NODELAY=1

socket = r:TCP_NODELAY=1

;compression = rle

; Some debugging stuff useful for troubleshooting

debug = 7

output = /var/log/stunnel4/stunnel.log

; Use it for client mode

client = yes

; Service-level configuration

[pop3s]

accept = 995

connect = 110

[imaps]

accept = 993

connect = 143

[ssmtp]

accept = 465

connect = 25

;;

;; gmail seting

;;

[gmail-pops]

accept = 9959

connect = imap.gmail.com:995

[gmail-imaps]

accept = 9939

connect = imap.gmail.com:993

[gmail-ssmtp]

accept = 4659

connect = imap.gmail.com:465

注:以上配置在ubuntu 12.04上测试通过

5、邮件附件操作

如果邮件带有附件,则在邮件条目上按回车键后,附件也会以条目的形式显示在邮件条目下方。如果邮件的附件比较大,mew并不会从邮件服务器上下载完整的邮件,它会在minibuffer区提示你邮件比较大,如果需要下载完整的邮件,请按I键。
  • 打开附件:在附件条目上按回车键,会打开附件,例如:如果是图片会显示图片。如果需要调用程序打开,再按C-c C-e调用默认程序打开,比如pdf文件默认是xpdf,但我还没找到在emacs和mew中修改打开附件默认程序的方法,知道的告诉我。
  • 保存附件:按y键后,会在minibuffer区提示输入保存路径。

6、mew中常用命令和热键

w                                 撰写新邮件

a                                  回复邮件,不带引用

A                                 回复邮件,带引用

f                                   转发邮件

r                                   重新发送邮件

SPC或Enter              阅读邮件

I                                    从邮件服务器下载完整的邮件(用于邮件较大的场合)

y                                  保存文件(可以保存信件全文、信件正文、附件)

M-o                            邮件分类

d                                  删除邮件

C-c C-l                       转换当前邮件的编码格式

C-c C-e                      调用默认程序打开附件

C-c C-a                      加入地址薄

C-u C-c C-a              比 C-c C-a 多加入昵称和名字

C-c C-q                      不保存退出

C-c C-a                      准备插入附件

mew-attach-copy     用复制方式加入附件

mew-attach-link       用链接方式加入附件

mew-attach-delete  删除附件

C-c C-c                      发送邮件

C-c RET                     保存邮件到发送队列

C                                 如果设置了多个邮箱,用 C 命令切换

Q                                 退出Mew

用Emacs收发邮件的更多相关文章

  1. DouNet学习_收发邮件

    一.收发邮件 --->第一步:发邮件首先要有发送者的邮箱地址和登录的密码才能发送 这些都写在APP里  不要写死 --->第二步:发邮件就要有网络,要添加net.Mail命名空间 要发送的 ...

  2. Outlook Express 收发邮件出现"0x800CCC0F"错误代码解决方法

    非常多网友在使用Outlook Express收发邮件的过程中,有时能够发送邮件,但出现不能接收信件的问题.每次在收邮件都会在某个地方停止不动,然后报超时,出现错误代码0x800CCC19或0x800 ...

  3. 用 Apache James 搭建邮件服务器来收发邮件实践(一)(转)

    Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写.James 是100%基于Java的电子邮件服务器.它是一种独立的邮件服务 ...

  4. Python收发邮件

    发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...

  5. mailkit库收发邮件

    mailkit库用于收发邮件.这个库可以替代C#自带的发邮件库 环境  W10 / VS2017CMMT / MailKit version="2.0.3" "net46 ...

  6. 转--python -- 收发邮件

    官方 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smt ...

  7. c#使用QQ邮箱的SSL收发邮件

    c#使用SMTP.QQ.COM的SSL验证时,收发邮件,请勿设置端口,代码如下: (1)虽然SSL端口是465,但是,在代码里,不能直接设置端口,很奇怪?挺奇怪,好吧腾讯SSL好像用的是587端口!! ...

  8. 在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件

    基于shell 现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势 ...

  9. 使用python的email、smtplib、poplib模块收发邮件

    使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...

随机推荐

  1. Oracle数据泵(上)

    导出 (以导出表空间为例) 1.给用户创建密码 alter user system identified by 00000000;   2.创建导出目录 create or replace  dire ...

  2. Spring Boot快速建立HelloWorld项目

    Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务.支持约定大于配置,目的是尽可能快地构建和运行Spring应用. 构建环境 JDK 6+ Maven ...

  3. SMP-1

    项目:该项目是用web做一个捐款的管理系统. 目标:可以记录接受捐款和资助捐款的信息,可以查询捐款等. 计划时间:2016-01-01至2016-01-15 实际用时:2016-01-08至2016- ...

  4. Mqtt服务器搭建

    .bg { background: #99CC99 } Mqtt服务器搭建 测试环境:CentOS64位 1.安装基础软件 yum install gcc-c++ yum install cmake ...

  5. ReactiveCocoa学习总结(2)

    信号(signal)- RACSignal类 1. 一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 2. 事件类型: next:发送数据到下一个管道 error:发送数 ...

  6. 区划代码 node 版爬虫尝试

    前言 对于区划代码数据,很多人都不会陌生,大多公司数据库都会维护一份区划代码,包含省市区等数据.区划信息跟用户信息息息相关,往往由于历史原因很多数据都是比较老的数据,且不会轻易更改.网上也有很多人提供 ...

  7. .Net程序员学用Oracle系列(25):触发器详解

    1.触发器理论 1.1.触发器的应用场景 1.2.触发器的类型 1.3.DML 触发器的触发顺序 2.触发器实战 2.1.创建触发器 2.1.1.创建 DML 触发器 2.1.2.创建 DDL 触发器 ...

  8. SQL Server中INNER JOIN与子查询IN的性能测试

    这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...

  9. ng-class改变css样式

    而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key ...

  10. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...