用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(好吧,图中复选框的箭头画错了,将就看了,汗死)
- 图2
2.解决offlineimap登录不安全的问题
- 按前面的设置完了,将授权码写到前面的配置文件之后,运行一下:offlineimap -o 可以多运行几次
,每次运行都会蹦下面这个错误:
NO ['SELECT The login is not safe! Please update your mail client: http://mail.126.com/iamdsy1']
- 通过浏览器登录126邮箱,进入收件箱打开刚收到的这封邮件"网易邮箱提醒:阻止了一次不安全的收信请求"
- 然后点击下图中所指的链接,一步一步,直到完成。
对,如果你一步一步完成,会得到网易的提醒,意思是你这么干很不安全,所以,到底要不要这么干你自己看了
反正你不这么干,那就没法用offlineimap来同步收取网易的邮件
三、运行
- 运行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邮箱比较费劲,打开这两个服务的时候需要设置授权码