Imap协议与Pop3协议相比,还是具有很大的优势,这样就可以实现多个终端管理邮件而且实时同步。
Neomutt是基于mutt的一款开源软件,可以这么说,mutt实现的功能,Neomutt都有;Neomutt实现的功能,mutt不一定具备。
众所周知,Imap与Gmail配合的天衣无缝,后者就在开发者中占有一个重要的地位,那么,国内邮箱126、或者qq邮箱可以实现这样的功能吗?
经过一番探索,mutt也可以使用Imap收发国内邮箱(仅测试126本文).
安装
如果在软件管理器安装Neomutt(或者mutt)是很容易的一件事,但是,如果想要更丰富的特性,则最好从源码安装,在编译的过程中,通过配置,从而得到自己想要的功能。比如:
apt-get install mutt
是无法使用Imap功能的,因为有时候默认不开启Imap协议。
下面我摘自INSTALL.md
To build NeoMutt, you will need, at the very minimum:
A C99 compiler such as gcc or clang
SysV-compatible curses library: ncurses or slang
Some common libraries, such as iconv and regex
DocBook XSL stylesheets and DTDs (for building the docs)
git clone https://github.com/neomutt/neomutt
安装配置选项
如果第一次安装Neomutt,还确实有些麻烦,因为它需要一些别的库:
比如,这里面你必须指定ncurses或者slang的安装位置(google),如果要开启Imap功能,--sasl --GNUTLS
也是必不可少的。具体需要哪些选项,你可以通过:
./configure --help
去了解。
下面是我的配置选项,仅能满足我的需要,仅供参考。
./configure --with-ui=slang --with-slang=/usr/local/src/slang-2.2.4 --with-ssl=/usr/lib/ssl/ \
--disable-doc --debug --with-idn=/usr/include/lib/ --sasl --with-gnutls=/usr/include/gnutls/
对了,只要带路径的选项,就是我自己安装的软件包,还可以的。如果你想快速知道自己的配置选项,可以使用neomutt -v
进行查看。
一切Ok的话,make && make install
配置文件
mutt的方便之处就在于它的配置文件了,这真的好像vim,好消息是,neomutt可以集成vim的内置命令在不久的将来。
单信箱
在我只用Gmail的时候,配置文件很简单,账号信息与mutt的全局配置变量放在一起就可以,这个文件就是~/.muttrc
,就是这么直接,Neomutt直接就可以把mutt的配置文件拿过来用(不支持的就可以去掉的)。这里Gmail与Imap在mutt的配置网上很多,不必想说。
多信箱
思路就是把账号信息分离,通过在.muttrc
中把邮箱绑定到不同的Macro上,从而实现Neomutt在不同的邮箱内跳转。
在.muttrc
中:
...
folder-hook '126.com' 'source ~/.mutt/account.126'
folder-hook 'gmail.com' 'source ~/.mutt/account.gmail'
macro index <f5> '<change-folder>imaps://imap.126.com<enter>'
macro index <f6> '<change-folder>imaps://imap.gmail.com<enter>'
那么,你可以仅仅把不同邮箱的账号信息放到~/.mutt/account.*
下,下面我贴一下我的account.126
set use_from=yes
set realname="Bo YU"
set from=[email protected]
set envelope_from=yes
#设置Gmail账户和密码,imap和gmail
set smtp_url = "smtp://[email protected]:25"
set smtp_pass = $imap_pass
#设置远程服务器和文件夹
set imap_user = "[email protected]"
set imap_pass = ""
set folder = "imaps://imap.126.com:993"
set certificate_file=~/Mail/certificates
#set imap_auth_type = "PLAIN"
set ssl_starttls = yes
set ssl_force_tls = yes
set imap_keepalive = 300
set mail_check = 120
set spoolfile = "+收件箱"
#set record = "+[126]/收件箱"
mailboxes = +INBOX
set certificate_file=~/Mail/certificates
好,这就是基本的配置文件了。在相同的配置下,一般情况下,可以登录Gmail,但是不能登录126,奇了怪了。
因为我是使用的Neomutt,所以怀疑是缺少一些必备的软件,所以从包管理器中重新安装了mutt,你也可以试试。
经过上步后,我可以登陆了,但是一直报错:
NO Select Unsafe Login. Please contact [email protected]解决办法
网上一搜,还是有解决办法的。就是网易不相信这种第三方软件导致的。你需要:
http://config.mail.163.com/settings/imap/[email protected]
将上面的163根据你的邮箱(126 or 其他)换成你的,uid是你的邮箱,登录后通过密保手机验证本人后,说:
您可以继续使用当前客户端收发邮件了,请特别注意个人的电子信息安全哦。感谢您对网易邮箱的支持!
就可以了。
参考: https://blog.csdn.net/shanghaojiabohetang/post/details/74486196
还有个问题就是如何知道错误信息呢?
在配置编译选项的时候,加上debug
模式,在打开Neomutt时可以:
neomutt -d5
# or
mutt -d5
就可以了。相关的log会产生在~/.neomuttdebug0
文件中。
stmp:
126 :503
本以为像Gmail那样就可以畅快的使用Imap,然而还是自己太年轻啊。是这样的,经过上面的步骤后可以很容易的像Gmail那样收件、查看信件,但是写信、回复信件就悲催了,首先是126报认证错,也就是553,也就是所谓的smtp认证失败,尝试了很多方式,很长时间才搞定的。
set smtp_url = "smtp://[email protected]:25"
一定要写这句,它和Gmail是不一样的,Gmail直接就是smtp://smtp.gmail:456/
,另外还有一点就是根据126的官方介绍,非ssl的加密方式的smtp的端口是25,这里只有25在我的情况下使用,很奇怪。
qq: 503 Error: need EHLO and AUTH first !
同理,这个错误也是上面的情形之一,你以为就OK了?Too young too simply.它的smtp又成了587.
qq邮箱的配置文件与126的很像,注意名字就可以了。
如果报: SASL认证失败。很大一部分就是密码错了。