~sircmpwn/aerc

ref: 0.3.0 aerc/go.mod -rw-r--r-- 1.8 KiB
331b9151 — Luke Drummond 1 year, 26 days ago
Add support for AUTH LOGIN submission

`go-sasl` upstream added support [1] for the obsolete [2] AUTH LOGIN
method which enables aerc to send email via servers which remain common
in the wild.

Fixes ~sircmpwn/aerc2#263

[1] https://github.com/emersion/go-sasl/commit/61afe53d
[2] https://datatracker.ietf.org/doc/draft-murchison-sasl-login/
notmuch: sync maildir flags

Syncs back special notmuch tag like unread to the underlying maildir store
upgrade go-message

Fixes date parsing bug in the maildir / notmuch workers.
bump go-message, fixes address list parsing failure
add github.com/zenhack/go.notmuch
Update dependencies

A bug corrupting long In-Reply-To headers has been fixed upstream in
go-message:
https://github.com/emersion/go-message/issues/44
Use latest go-maildir
maildir: Watch for new messages

When a directory is opened, start watching its "new" subdirectory for
incoming messages using the fsnotify library. When creation events are
detected, run the Unseen routine to move the message from new to cur and
add new UIDs to the store, updating the UI's list of directory contents
as we go.
Handle the invalid "utf8" encoding

See commit 0bfc369eb68a1d34ea0ee983f218e97a14099959 in the go-message
package.
Add maildir backend worker

Add the initial implementation of a backend for Maildir accounts. Much
of the functionality required is implemented in the go-message and
go-maildir libraries, so we use them as much as possible.

The maildir worker hooks into a new maildir:// URL scheme in the
accounts.conf file which points to a container of several maildir
directories. From there, the OpenDirectory, FetchDirectoryContents, etc
messages work on subdirectories. This is implemented as a Container
struct which handles mapping between the symbolic email folder names and
UIDs to the concrete directories and file names.
Support imaps with oauthbearer authentication (Gmail)

    imaps+oauthbearer://user:token@host?token_endpoint=...

 - the config Source password is used as access token if
   no token_endpoint parameter is set
 - the config Source password is used as refresh token if
   token_endpoint parameter is set, and used to exchange
   with an access token

The implementation has only been tested with Gmail.

    source = imaps+oauthbearer://{username}:{refersh_token}@imap.gmail.com:993? \
    client_id=XX&\
    client_secret=XX&\
    token_endpoint=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken

client credentials created with

    https://console.developers.google.com/apis/credentials

refresh token created with

    https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py

rel: https://todo.sr.ht/~sircmpwn/aerc2/42
Set the required go version for this module, aerc

This is the way to declare which compiler version a module requires to build.

I read up on https://golang.org/doc/go1.12#modules
Update reply to use getopt posix optind format

This changes the handling of optind for the 'reply' command to match
recent changes to getopt.
Update dependencies

This should get rid of this error message:

    tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config
Use forked version of tcell
Update terminal color handling per vterm changes
Update to the latest go-libvterm
Next