The purpose of this page is to distribute releases of Alpine, as well as
to provide users with documentation on Alpine. All documentation needed to
configure Alpine can be found in the binary, and this page may provide
extra documentation. In any case, you are not required, nor encouraged to
access this site to run Alpine. You can run Alpine in your computer
without the need to ever visit this site. All documentation needed to
configure Alpine can be found in the binary, and can be read by either
pressing the "?" command or by pressing "^G" in Alpine.
Your privacy is important to me. When you access this site a log is kept
on the pages you visited. I have access to daily logs which are normally
erased, and if I do not see them, I miss them. I must login to this site
about twice a month, and I take a look at the site logs at that time. The
logs record yoour IP address, the date and time when you made a request to
the server, the exact request you made, the http status code received by
your server, and the browser you used. When I read the logs, I only look
at which pages people have accessed, and make a mental note about them,
and I do not make any concerted effort to associate an IP address with a
pattern of visits. This information is just for purposes of me knowing
what pages users visited, and nothing more. I have had access to this
information since March 2020, and no information previous to that time is
available to me.
I also find it amusing to read the 404 errors. It shows people looking for
newwer versions of Alpine, and other plugins that do not exist. I try not
to link to missing pages, but if I do, please report it to me so that I
can fix it.
While I do not do anything to link you with your visit to this site, I do
not know what my free web site provider does with this information.
Continuing that idea, I do not know what your ISP does with this data
either, and if you contact me, I do not know what my email service
provider or your email service does with that information either. However,
if you contact me, I will use that information to contact you back in case
I need to, and I will only contact you in reference to
the topic of your message. I will never ask you for passwords, or
sensitive information that is not needed to debug an issue you might have
found. I normally keep records of all messages that are sent to me and
those that I send. I sometimes need to access those records to remind me
of past issues and their solutions. If you would like me to delete records
of my conversation with you, I will do so, but you must initiate that
Finally, rest assured that I will never sell or share information about
your visit to this site, or the fact you contacted me, with anyone.
Latest Release Version 2.22
- Source Code
- For Windows 10 or any 64 bit version of WIndows: alpine-2.22.zip
- For an old version of Windows, such as XP, which is 32 bit: alpine-2.22_32bits.zip
This version is released under the Apache License Version 2.0.
Version 2.22 includes several new features and bug fixes.
- Support for XOAUTH2 authentication method in Gmail.
- PC-Alpine builds with LibreSSL and supports S/MIME.
- NTLM authentication support with the ntlm library, in Unix systems.
Based on code provided by Maciej W. Rozycki.
- Add /tls1_3 flag for servers that support it. Read more information
in the secure protocols help.
- To increase user's privacy, remove phone-home code that would prompt
users to send an email message upon starting Alpine for the first time for
purposes of counting. Your use of Alpine does not disclose information about
you or your use of Alpine to the developers of Alpine.
- New variable
that allows users to configure versions of the SSL/TLS protocol that Alpine is
restricted to try when establishing a secure connection SSL/TLS to a remote
server. The default can be set at compilation time.
- Add -dict option to PC-Pico, which allows users to choose a dictionary
when spelling. Sample usage: -dict "en_US, de_DE, fr_FR".
- Improvements to the configure stage of compilation. Some of
these contributed by Helmut Grohne. See
Bug 876164 in Debian.
- Add "remove password" command to the management screen for the
password file encryption key. This allows users to use their password file
without entering a master password.
- Add the "g" option to the select command that works in IMAP
servers that implement the X-GM-EXT-1 capability (such as the one offered
by Gmail.) This allows users to do selection in Alpine as if they were
doing a search in the web interface for Gmail.
- New variable close-connection-timeout, which tells Alpine to close
a connection that is having problems being kept alive after the number
of seconds configured in this variable, if the connection has not
recovered. The default is 0, which means to keep the connection alive
and wait for the connection to recover.
- When a message is of type multipart/mixed, and its first part is
multipart/signed, Alpine will include the text of the original message
in a reply message, instead of including a multipart attachment.
Suggested by Barry Landy.
- S/MIME: Some clients do not transform messages to canonical form when
signing first and encrypting second, which makes Alpine fail to parse the
signed data after encryption. Reported by Holger Trapp.
- Add /auth=XYZ to the way to define a server. This allows users to
select the method to authenticate to an IMAP, SMTP or POP3 server.
Examples are /auth=plain, or /auth=gssapi, etc.
- Add backward search in the index screen. Based on patch by Astyanax Foo,
submitted in 2009, but resubmitted by Erich Eckner on 2019.
- SMIME: When Alpine is set to validate a message using the user's store, and
user agrees to save a certificate of another user, use the saved
certificate immediately to verify the smime message. Reported by
- Do not use a delay when printing messages to screen when the initial
keystroke sequence of commands is active. Based on a report from Holger
- In PC-Alpine, when the decoded name of an attachment does not agree
with its encoded name, Alpine will offer to save the file using the
UTF8 encoded name.
Bugs that have been addressed include:
- Width of characters is not always determined correctly when wcwidth
is used. Revert to using code for the Windows operating system.
Reported by Andrew Ho.
- The call realpath(..., NULL) gives an error in Solaris, which means that
we need to allocate memory for storing the resolved path. Reported by
- Crash when attempting to bounce a message due to lack of space in
allocated space for key menu array. Reported by David Sewell.
- Crash when a CA certificate failed to load, and user attempted to
view certificate information of other certificate authorities.
- Crash in the S/MIME configuration screen when a user turned off S/MIME, and
then re-enabled it. Also crash when attempting to enter the S/MIME
configuration screen if S/MIME was turned off.
- Deactivate some color code from Pico (as standalone editor in the
windows version) until I find a way to activate it again. This is
not critical and it is not something that PC-Pico must have (some
of it already exists in other ways, like color support, what does
not exist is the more complex code that Unix-Pico has with color
codes for specific colors.)
- When a message is multipart, and the first part is flowed text,
then forwarding the message will set the first part to be flowed,
and sent that way even when the option Do Not Send Flowed Text is
enabled. Reported by Holger Trapp.
- When a message/rfc822 part of a message is encoded with
Content-Transfer-Encoding: QUOTED-PRINTABLE, Alpine will stop
processing that message. Later this causes Alpine to crash because
when it displays messages, it assumes that both header and body
parts are processed. Reported by Mark Crispin in 2010, in the
Alpine-info list (message with subject "crash bug in
alpine/mailpart.c:format_msg_att()") with no example, and reported
now by Holger Trapp, with an example.
- In addition to the previous report, Alpine encodes message/rfc822
messages as QUOTED-PRINTABLE, in contradiction with RFC 2045,
when it receives a report that its encoding is 8bit. We preserve
the encoding reported by the IMAP server, and do not encode in
- Update build.bat file to add /DWINVER=0x0501 so that Alpine can
build when using Visual Studio 2017. Fix contributed by
- When the locale is not set up to UTF-8, alpine might determine the
width of a character incorrectly. Reported by Alexandre Fedotov.
- In some rare cases, when attachments are deleted before saving
emails, the filenames will be displayed in RFC1522 representation,
instead of in decoded form. Reported and patched by Wang Kang.
- When colors are edited from the main setup configuration screen, some
color settings are not updated until Alpine is restarted. Reported by
- If the first part of a message is multipart/alternative, and the
first part of this is also a multipart type, then Alpine might
fail to select the first text part when replying to a message.
Reported by Lucio Chiappetti.
- TLS 1.2 works does not work if Alpine is compiled with openssl >= 1.1.0.
Reported and patched by Kyle George.
- If the directory where Alpine saves the certificates is empty,
alpine would not create a self-signed certificate to encrypt the
- S/MIME: The list of public certificates is freed before it is
reused when a signature fails to verify. This causes Alpine to
crash. Patch submitted by Linus Torvalds.
- S/MIME: A message could fail to verify its signature even if the
certificate was saved when the message was open. Based on a report
by David Woodhouse to the RedHat bugzilla system.
- When there are time changes in the clock, Alpine might go to sleep
for big amounts of time while displaying messages in the screen.
Reset sleep time to 5 seconds in case it finds it needs to sleep
more than 5 seconds or a negative amount of time.
- Restore recognition of empty directories. It was deleted by mistake
when added support for internationalization in folders. Based on a
report by Michael Rutter.
- Alpine stops parsing the mailcap file when it finds an invalid entry.
Reported by Matt Roberds to the Debian bug system at
- Crash with error "Lock when already locked" when an attempt to check
for new mail on a locked stream that is being used for a save
operation. Reported by Carlos E.R.
- Alpine removes trailing spaces from passwords, making a longin attempt
fail. Reported by R. Lyons.
- Alpine crashes when opening a remote imap folder and computing scores.
Reported by Paul DeStefano.
- When more than one server was given in the server-name configuration
option of rldap servers, none of them worked. Reported by Robert Wolf.
In order to compile this source code you need OpenSSL version 1.0.0c or
later. In addition, Alpine can be compiled with recent versions of LibreSSL.
In order to decompress use the command
tar -Jxf alpine-2.22.tar.xz
This page Copyright 2020 © Eduardo Chappa