由于“gnutls_handshake:收到了意外长度的TLS数据包”,Mutt无法正常工作

我期待在Ubuntu 12.04中尝试使mutt工作有很多问题。 这是我的.muttrc: http : //paste.ubuntu.com/1273585/

这是我尝试连接时遇到的错误。 gnutls_handshake: A TLS packet with unexpected length was received.

有谁知道解决此错误的解决方法。如果是这样请尽快建议。

提前谢谢了!

对于调试,这里是我的mutt -v的输出: http : //paste.ubuntu.com/1273590/

不幸的是,这可能是Mutt及其使用gnutls ,从Mutt邮件列表中可以看出,但是有一些解决方案。

值得从.mutt/cache/headers删除头文件,因为它们有时会导致问题。 我还注意到你的.muttrc没有mailboxes行。 我在Mutt使用gmail并在我的.muttrc有以下内容(尽管你的可能有所不同):

 mailboxes +INBOX +archive +sent +drafts +spam +trash 

我提到这一点是因为在Launchpad中讨论了这个错误并且有人提到只指定正确的邮箱解决了他的问题。

.muttrc与我的.muttrc进行比较后发现没有其他差异,而且Mutt和gmail对我的设置几乎相同。


但是 ,如果这些建议无法解决您的问题,则可以从源代码构建Mutt并确保使用openssl支持构建它,因此您可以使用openssl而不是gnutls 。 我注意到,在你的第二个Pastebin中,你的Mutt确实是用gnutls构建的,你的调试显示:

 -USE_SSL_OPENSSL +USE_SSL_GNUTLS 

这里-表示没有该属性, +表示该属性。

所以,在我们开始构建之前,清除当前安装的mutt

 sudo apt-get purge mutt 

然后获取依赖项

 sudo apt-get build-dep mutt 

在这里使用build-dep是很好的,因为最新版本的mutt (在撰写本文时)不需要任何比使用build-dep获取的库更新的库。

您还需要确保输入:

 sudo apt-get install openssl libsasl2-modules libssl-dev libssl1.0.0 

现在从官方网站下载最新的源代码(编写时为1.5.21),然后validation相应的gpg签名,并cd到下载的文件并解压缩源代码

 tar xzvf mutt-1.5.21.tar.gz 

然后传递这些额外的选项来configure (我们需要包括其他选项以及ssl作为imapsmtp支持,其他东西默认情况下不编译):

 ./configure --enable-pop --enable-imap --enable-smtp --with-ssl --enable-hcache --with-gss --with-sasl --enable-debug --enable-gpgme 

然后继续构建,然后安装程序

 make sudo make install or sudo checkinstall 

构建只需要一些时间,它应该允许您再次使用Mutt 。 在运行新程序之前清除标头缓存(我在上面进一步详述)可能是个好主意。 它将自动使用ssl,因为现在没有内置的tls支持。

来自新编译程序的屏幕截图(显示一些较旧的非个人电子邮件):

在此处输入图像描述