用mutt收发邮件系列2-offlineimap配置(mutt+offlineimap+msmtp)

默认分类 · 2017-01-14

用mutt收发邮件系列第二篇,offlineimap的配置

一、我的配置文件(~/.offlineimaprc)

#此general选项指定我有两个账户,账户名称分别为iamdsy1、139,使用时根据自己需要随意修改即可
[general]
accounts = iamdsy1,139
#多少个账户可以同时同步,和前面的账户数相同即可
maxsyncaccounts = 2


#此为iamdsy1账户的一般设置项
[Account iamdsy1]
localrepository = iamdsy1_local
remoterepository = iamdsy1_remote
#10意思是offlineimap间隔10分钟与服务器同步一次信件
autorefresh = 10


#此选项为本地邮件的根目录设置
[Repository iamdsy1_local]
#电子邮件有2种存储方式,1种是所有邮件全存储到1个大文件里面,另1种就是建立一个邮箱文件夹,然后
#所有邮件都存储到此邮箱文件夹下面,每1封邮件独立1个文件。
#此处选择的是第2种方式
type = Maildir
#此为根目录,意思是服务器上的inbox会存储到126目录下,而且在inbox目录下还会存在3个目录,分别是
#cur new tmp
localfolders = /home/iamdsy/mail/126/


#此选项为服务器邮件的设置
[Repository iamdsy1_remote]
#选用协议为imap,不是pop3
type = IMAP
#选用ssl加密链接方式
ssl = yes
#126的imap服务器地址
remotehost = imap.126.com
#126的imap服务器端口号
remoteport = 993
#我的126邮箱的用户名,需要换成自己126邮箱的用户名
remoteuser = iamdsy1
#存储我的126邮箱的授权码,不是密码,记住不是密码
remotepassfile = /home/iamdsy/.mutt/passwd
#126邮箱的远程public key的hash值,我猜的,后面会说讲解如何获得这个值
cert_fingerprint = 38a0f0e90d6299eaef90c878c83607210351cac0
#本地删了邮件,是否真的删服务器上的邮件,yes表示真的删,这样才是我在本地处理了邮件,不用再登录服务器去处理了
realdelete = yes


#此为139账户的一般设置项,后面相同的部分我就不再注释了
[Account 139]
localrepository = 139_local
remoterepository = 139_remote

[Repository 139_local]
type = Maildir
localfolders = /home/iamdsy/mail/139/

[Repository 139_remote]
type = IMAP
ssl = yes
remotehost = imap.139.com
remoteport = 993
remoteuser = 138xxxxxxxx
remotepassfile = /home/iamdsy/.mutt/passwd139
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
##下面这一行删了,用上面一行代替(2019.11.6修改)
##cert_fingerprint = b20da95f9df606380ab8da2cba4fada1c89fb2d8
realdelete = yes

二、服务器端设置

此处主要针对126邮箱进行设置,139邮箱参考设置即可,其步骤比126邮箱少了好几步

1.打开imap/smtp、pop3/smtp服务,获取授权码

此处设置全都通过浏览器登录126邮箱进行的设置,并且确保已经绑定了手机号

我就不一一贴图了,捡重要的贴哈。

  • 图1(好吧,图中复选框的箭头画错了,将就看了,汗死)

126邮箱设置图1

  • 图2

126邮箱授权码设置图

2.解决offlineimap登录不安全的问题

  • 按前面的设置完了,将授权码写到前面的配置文件之后,运行一下:offlineimap -o 可以多运行几次
    ,每次运行都会蹦下面这个错误:
NO ['SELECT The login is not safe! Please update your mail client: http://mail.126.com/iamdsy1']
  • 通过浏览器登录126邮箱,进入收件箱打开刚收到的这封邮件"网易邮箱提醒:阻止了一次不安全的收信请求"
  • 然后点击下图中所指的链接,一步一步,直到完成。

对,如果你一步一步完成,会得到网易的提醒,意思是你这么干很不安全,所以,到底要不要这么干你自己看了
反正你不这么干,那就没法用offlineimap来同步收取网易的邮件

126邮箱不安全登录设置图

三、运行

  • 运行1次就退出offlinimap
offlineimap -o
  • 一直运行,隔10分钟与服务器同步一次信件
offlineimap

正常来说,如果你邮箱邮件很多,第一次运行会花较长时间来同步

四、运行时遇到的各种错误如何解决

这些错误信息是我配置offlineimap的过程遇到的各种坑,按前面的步骤配置完成应该不会遇到下面这些坑,所以你可以不看,
但是,但是你要是遇到坑了,可以来这查一下,我也算备忘了,这些错误信息不是按出现的顺序写的,是我想到哪写到哪
哦,不对,下面第一个好像经常容易遇到

1.删除相关文件,解决同步错误

  • 错误信息:
ERROR: Creating folder  on repository iamdsy1_remote
  Folder '/'[iamdsy1_remote] could not be created. Server responded: ('NO', ['CREATE Can not create subfolder'])
 ERROR: Folder '/'[iamdsy1_remote] could not be created. Server responded: ('NO', ['CREATE Can not create subfolder'])
  • 解决办法
cd /home/iamdsy/mail/126
rm -rfv cur new tmp

2.随便填写cert_fingerprint值,解决NO CA。。。错误信息

  • 错误信息:
ERROR: No CA certificates and no server fingerprints configured.  You must configure at least something, otherwise having SSL helps nothing.
  • 解决办法:
#将前面的配置文件的cert_fingerprint随便赋值为40个字符,必须是数字加字母的方式,不能有其他特殊字符,如我配置文件那样
cert_fingerprint = b23da95f9df606380ab8da2cba4fada1c89fb2d8 

3.正确填写cert_fingerprint值,解决ERROR: Server SSL fingerprint。。。错误信息

  • 错误信息:
ERROR: Server SSL fingerprint 'b20da95f9df606380ab8da2cba4fada1c89fb2d8' for hostname 'imap.139.com' does not match configured fingerprint(s) ['b23da95f9df606380ab8da2cba4fada1c89fb2d8'].  Please verify and set 'cert_fingerprint' accordingly if not set yet.
  • 解决办法
#其中的b20.。。。就是上面错误信息中第一串fingerprint值
cert_fingerprint = b20da95f9df606380ab8da2cba4fada1c89fb2d8

4.开启服务器端的imap、smtp服务,解决LOGIN authentication failed:。。。错误信息

  • 错误信息:
LOGIN authentication failed: LOGIN Login error user suspended
 ERROR: All authentication types failed:
    LOGIN: LOGIN Login error user suspended
  • 解决方法:

通过浏览器登录126,139邮箱,打开imap/smtp,pop3/smtp服务,126邮箱比较费劲,打开这两个服务的时候需要设置授权码

mutt
Theme Jasmine by Kent Liao