vimer linux kernel 爱好者

Neomutt使用126邮箱的imap

2018-06-02

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认证失败。很大一部分就是密码错了。


上一篇 leetcode easy task

下一篇 ebpf基础知识

Comments

Content