diff options
-rw-r--r-- | .github/workflows/macos.yml | 20 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | app/aerc.go | 8 | ||||
-rw-r--r-- | config/aerc.conf | 4 | ||||
-rw-r--r-- | doc/aerc-imap.5.scd | 3 | ||||
-rw-r--r-- | doc/aerc.1.scd | 3 | ||||
-rw-r--r-- | lib/msgstore.go | 7 | ||||
-rw-r--r-- | worker/imap/connect.go | 8 |
8 files changed, 39 insertions, 16 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 52559861..950a7642 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -4,13 +4,27 @@ on: push jobs: macos: runs-on: macos-latest + strategy: + matrix: + go: + - '1.18' + - '1.22' env: DESTDIR: ./out - GOFLAGS: "-tags=notmuch" + GOFLAGS: -tags=notmuch + name: MacOS Go ${{ matrix.go }} steps: - - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go }} + check-latest: true - run: brew install gnupg notmuch scdoc + - run: | + cat >> "$GITHUB_ENV" <<EOF + CGO_CFLAGS=-I$(brew --prefix)/include + CGO_LDFLAGS=-L$(brew --prefix)/lib -Wl,-rpath,$(brew --prefix)/lib + EOF - run: make - run: make install - run: make checkinstall @@ -57,7 +57,7 @@ User contributions and integration with external tools: Recent versions of aerc are available on: - [Alpine](https://pkgs.alpinelinux.org/packages?name=aerc) -- [Arch](https://archlinux.org/packages/community/x86_64/aerc/) +- [Arch](https://archlinux.org/packages/extra/x86_64/aerc/) - [Debian](https://tracker.debian.org/pkg/aerc) - [Fedora](https://packages.fedoraproject.org/pkgs/aerc/aerc/) - [openSUSE](https://build.opensuse.org/package/show/openSUSE:Factory/aerc) diff --git a/app/aerc.go b/app/aerc.go index 667696f7..3f2c9b32 100644 --- a/app/aerc.go +++ b/app/aerc.go @@ -39,7 +39,7 @@ type Aerc struct { pendingKeys []config.KeyStroke prompts *ui.Stack tabs *ui.Tabs - beep func() error + beep func() dialog ui.DrawableInteractive Crypto crypto.Provider @@ -144,7 +144,7 @@ func (aerc *Aerc) showConfigWarnings() { callback("", nil) } -func (aerc *Aerc) OnBeep(f func() error) { +func (aerc *Aerc) OnBeep(f func()) { aerc.beep = f } @@ -153,9 +153,7 @@ func (aerc *Aerc) Beep() { log.Warnf("should beep, but no beeper") return } - if err := aerc.beep(); err != nil { - log.Errorf("tried to beep, but could not: %v", err) - } + aerc.beep() } func (aerc *Aerc) HandleMessage(msg types.WorkerMessage) { diff --git a/config/aerc.conf b/config/aerc.conf index bd9ef16b..ccfbe748 100644 --- a/config/aerc.conf +++ b/config/aerc.conf @@ -165,7 +165,7 @@ #message-view-this-day-time-format= # If set, overrides timestamp-format in the message view for messages -# that were recieved/sent within the last 7 days. +# that were received/sent within the last 7 days. # #message-view-this-week-time-format= @@ -363,7 +363,7 @@ # Default: false #reverse-msglist-order = false -# Reverse display of the mesage threads. Default order is the the intial +# Reverse display of the message threads. Default order is the initial # message is on the top with all the replies being displayed below. The # reverse option will put the initial message at the bottom with the # replies on top. diff --git a/doc/aerc-imap.5.scd b/doc/aerc-imap.5.scd index af3a020b..c2292464 100644 --- a/doc/aerc-imap.5.scd +++ b/doc/aerc-imap.5.scd @@ -35,6 +35,9 @@ are available: _imaps_ IMAP with TLS/SSL + _imaps+insecure_ + IMAP with TLS/SSL, skipping certificate verification + _imaps+oauthbearer_ IMAP with TLS/SSL using OAUTHBEARER Authentication diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd index 1351f5b6..62129bff 100644 --- a/doc/aerc.1.scd +++ b/doc/aerc.1.scd @@ -554,9 +554,6 @@ message list, the message in the message viewer, etc). prefix. For more information please refer to section 3.6.6 of RFC 2822. Note that the bounced message is not copied over to the *sent* folder. - Beware that at least the _msmtp_ sendmail implementation does not consider - the *Resent-From* header when invoked with _--read-envelope-from_. - Also please note that some providers (notably for instance Microsoft's O365) do not allow sending messages with the *From* header not matching any of the account's identities (even if *Resent-From* matches some). diff --git a/lib/msgstore.go b/lib/msgstore.go index f1399e4e..8f626eb8 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -249,6 +249,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) { var newUids []uint32 update := false updateThreads := false + directoryChange := false start := store.scrollOffset end := store.scrollOffset + store.scrollLen @@ -263,6 +264,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) { newMap[uid] = msg } else { newMap[uid] = nil + directoryChange = true if i >= start && i < end { newUids = append(newUids, uid) } @@ -287,6 +289,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) { newMap[uid] = msg } else { newMap[uid] = nil + directoryChange = true if i >= start && i < end { newUids = append(newUids, uid) } @@ -381,6 +384,10 @@ func (store *MessageStore) Update(msg types.WorkerMessage) { store.update(updateThreads) } + if directoryChange && store.triggerDirectoryChange != nil { + store.triggerDirectoryChange() + } + if len(newUids) > 0 { store.FetchHeaders(newUids, nil) if store.triggerDirectoryChange != nil { diff --git a/worker/imap/connect.go b/worker/imap/connect.go index 6c704d35..c109d3b7 100644 --- a/worker/imap/connect.go +++ b/worker/imap/connect.go @@ -57,6 +57,9 @@ func (w *IMAPWorker) connect() (*client.Client, error) { } } case "imaps": + if w.config.insecure { + tlsConfig.InsecureSkipVerify = true + } tlsConn := tls.Client(conn, tlsConfig) c, err = client.New(tlsConn) if err != nil { @@ -98,8 +101,9 @@ func (w *IMAPWorker) connect() (*client.Client, error) { if err := c.List("", "", info); err != nil { return nil, fmt.Errorf("failed to retrieve delimiter: %w", err) } - mailboxinfo := <-info - w.delimiter = mailboxinfo.Delimiter + if mailboxinfo := <-info; mailboxinfo != nil { + w.delimiter = mailboxinfo.Delimiter + } if w.delimiter == "" { // just in case some implementation does not follow standards w.delimiter = "/" |