Mutt 因“gnutls_handshake:收到了长度意外的 TLS 数据包。”错误而无法正常工作

Mutt 因“gnutls_handshake:收到了长度意外的 TLS 数据包。”错误而无法正常工作

我预计在 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/

答案1

不幸的是,这可能是 Mutt 及其使用的一个问题gnutls,正如从Mutt 邮件列表,但也有一些解决方案。

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

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

我之所以提到这一点是因为发射台讨论了这个错误,有人提到仅指定正确的邮箱即可解决他的问题。

.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),然后验证适当的 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 支持。

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

在此处输入图片描述

相关内容