由于“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
作为imap
和smtp
支持,其他东西默认情况下不编译):
./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支持。
来自新编译程序的屏幕截图(显示一些较旧的非个人电子邮件):