Alpine是一个具有悠久历史的基于Pine的一个基于文本界面的邮件客户端。
说到Alpine你可能感觉很陌生,但是你可能听说过一个叫做GNU Nano的文件编辑器。Alpine的前身是由华盛顿大学开发Pine,而Pine的邮件编辑器独立出来成为了一个文本编辑器Pico,而GNU Nano正是Pico的一个基于GNU许可证的克隆。
Alpine一开始是在华盛顿大学停止开发Pine之后由其重新开发的并以Apache License发布,后来华盛顿大学又停止了Alpine的开发,Alpine的开发转向了社区,并有了各种Patch。当前,Alpine由一个前华盛顿大学的开发者维护,而且还在更新,甚至将SSL/TLS的库换成了LibreSSL。最近的提交中,Alpine改进了在Windows平台上编译的问题。因而我开始尝试在Windows 10上编译Alpine。
编译
首先你需要获得Alpine的代码,Alpine的代码目前托管于一个Git仓库中,对于Windows,你可能需要先安装Git for Windows,接着在Git Bash中克隆Alpine的代码
git clone git://repo.or.cz/alpine.git
接着你需要准备工具链,也就是Visual Studio。当然你并不需要完整安装Visual Studio,我们只需要其中的一部分组件。这里我们采用最新的Visual Studio 2019 Community版本,我这边的安装配置如下
{ "version": "1.0", "components": [ "Microsoft.VisualStudio.Component.CoreEditor", "Microsoft.VisualStudio.Workload.CoreEditor", "Microsoft.VisualStudio.Component.Roslyn.Compiler", "Microsoft.Component.MSBuild", "Microsoft.VisualStudio.Component.TextTemplating", "Microsoft.VisualStudio.Component.VC.CoreIde", "Microsoft.VisualStudio.Component.Windows10SDK", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "Microsoft.VisualStudio.Component.VC.Redist.14.Latest", "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", "Microsoft.VisualStudio.Component.Windows10SDK.17763", "Microsoft.VisualStudio.Workload.NativeDesktop" ] }
在Alpine代码仓库的根目录下面,有一个build.bat的脚本,这个脚本不能在通常的命令行中执行,而是需要使用VS的命令行。我们只需要在x86 Native Tools Command Prompt for VS 2019
的命令行中,进入代码根目录并执行
>build.bat wnt
就能开始编译。(当然还有一个w2k
的编译命令,这个应该是增加了Kerboros支持,对于一般的邮件使用,大概用不到)
编译完成后,你能在源代码仓库根目录下的alpine
目录下找到编译好的可执行文件,运行所需文件是以下几个
alpine.exe ldap32.dll libtls-15.dll libssl-43.dll libcrypto-41.dll
我个人尝试使用Windows 10 1903 + Visual Studio 2019 Community编译成功。
运行
运行时要注意几个问题。当前绝大多数邮件服务器都需要SSL/TLS通信,而SSL/TLS就需要根证书,Alpine可执行文件中并不自带根证书,所以会出现证书错误。根据libressl
文件夹下的README
中的提示, LibreSSL默认的证书路径是C:\libressl\ssl\certs
,所以你需要手动创建目录并把源代码根目录下libressl\certs
文件夹下的所有根证书全部复制过去。之后就不会出现不能验证SSL/TLS证书的问题。网络上的一些教程中,在配置SMTP等服务器的时候使用了novalidate-cert
参数,意思为不验证证书,这很明显就是一种极度危险的配置。
另一个问题是对于HiDPI的使用环境,Alpine的界面会很模糊,所以你需要在右键菜单,「属性」的「兼容性」选项卡中,选择「更改高DPI设置」,勾选「高DPI缩放替代」,「缩放执行」改为「应用程序」。
关于Alpine的更多使用可以参考这篇文章1,这可能是你能找到的关于Alpine最好的中文文章。