Ben Burwell
030f390436
Add unsubscribe command
...
The unsubscribe command, available when in a message viewer context,
enables users to easily unsubscribe from mailing lists.
When the command is executed, aerc looks for a List-Unsubscribe header
as defined in RFC 2369. If found, aerc will attempt to present the user
with a suitable interface for completing the request. Currently, mailto
and http(s) URLs are supported. In the case of a HTTP(S) URL, aerc will
open the link in a browser. For mailto links, a new composer tab will be
opened with a message filled out according to the URL. The message is
not sent automatically in order to provide the user a chance to review
it first.
Closes #101
2019-07-04 11:06:14 -04:00
Ben Burwell
1bb1a80156
Use "open" instead of "xdg-open" on Darwin systems
2019-07-04 10:58:33 -04:00
Gregory Mullen
2a0961701c
Implement basic tab completion support
...
Tab completion currently only works on commands. Contextual completion
will be added in the future.
2019-06-29 14:24:19 -04:00
Drew DeVault
91a75cd98b
Implement :search, :next-result, :prev-result
2019-06-26 20:50:54 -04:00
Reto Brunner
ccf5c02c38
msgview/save: Use defaultSavePath if no path is provided
2019-06-25 10:38:55 -04:00
Drew DeVault
ceeb30abeb
Fix Cc & Bcc handling in replies
2019-06-21 14:33:09 -04:00
Martin Hafskjold Thoresen
53df15ae06
Insert nil check before handling prev/next message
...
If these are called before the store is setup, `acct.Store()` returns
`nil`, and we SEGFAULT in `MessageStore.nextPrev`.
2019-06-18 19:39:42 -04:00
Réouven Assouly
ce475e4952
commands/msgview: add open command
2019-06-17 14:52:52 -04:00
Réouven Assouly
dfe114b643
Make part encoding checks case insensitive
...
commands/msgview/save and commands/msgview/pipe now use case
insensitive comparisons to determine if the part is encoded as base64
or quoted-printable.
2019-06-16 11:24:42 -04:00
Clayton Craft
e56ceb099e
Support directories in path to :save
...
This adds new functionality to :save in the message view for specifying
directories in the path. A new flag, -p, is also added to :save for
automatically creating any directories in the path that do not exist.
If the path ends in a / (e.g. "Downloads/mail/") or if the path is an
existing directory, the part's file name is the filename from the mail
header for the part. Otherwise, it uses the last element in the path as
the filename (e.g. 'blah.jpg' is the filename if the path is
'Downloads/mail/blah.jpg')
2019-06-14 09:48:20 -04:00
Kevin Kuehler
9746f4858c
commands/msgview: Add next/prev commands
...
Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
2019-06-11 09:34:48 -04:00
Kevin Kuehler
32f970e053
Move select functionality from msglist to msgstore
...
Remove msglist Next and Prev commands
Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
2019-06-11 09:34:36 -04:00
Kevin Kuehler
d1df710328
commands/msg/archive: Work with msgviwer
...
Inside the generic msg command we cannot use aerc.SelectedAccount()
because the method naively assumes the current tab is an AccountView.
Use the ProvidesMessage interface instead.
Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
2019-06-11 09:18:51 -04:00
Drew DeVault
d22a9140cd
Implement :mkdir command
2019-06-09 19:21:26 -04:00
Drew DeVault
a98824af75
Fix :new-account getopts
2019-06-09 19:14:56 -04:00
Drew DeVault
57471a0e67
Fix :copy arg handling
2019-06-09 19:14:04 -04:00
Drew DeVault
c55223106d
Fix :move command's arg parsing
2019-06-09 18:29:21 -04:00
Clayton Craft
f5a4d935ef
Update reply to use getopt posix optind format
...
This changes the handling of optind for the 'reply' command to match
recent changes to getopt.
2019-06-09 15:50:50 -04:00
Drew DeVault
6271d455eb
Add :read and :unread commands
2019-06-09 14:55:42 -04:00
Drew DeVault
d63653ecde
commands/msg/copy: remove unnecessary code
2019-06-09 14:54:27 -04:00
Robert Günzler
acfe7d7625
Add archive command
...
Adds an archive command that moves the current message into the folder
specified in the account config entry.
Supports three layouts at this point:
- flat: puts all messages next to each other
- year: creates a folder per year
- month: same as above, plus folders per month
This also adds a "-p" argument to "cp" and "mv" that works like
"--parents" on mkdir(1). We use this to auto-create the directories
for the archive layout.
2019-06-09 11:33:50 -04:00
Yash Srivastav
35f57321f8
Mark sent emails as read
2019-06-08 12:44:01 -04:00
Yash Srivastav
fca7321639
Message list: implement index-format option
2019-06-07 16:22:01 -04:00
Yash Srivastav
b83e7c9fa6
implements ability to view headers in message view
2019-06-07 09:20:24 -04:00
JanUlrich
0771eaf24c
Introduce :new-account -t
...
Adding the [-t] temporary flag to the new-account command
- when using -t a newly created account will not be stored into the
accounts.conf
Issue #134
2019-06-05 09:32:43 -04:00
Tadeo Kondrak
023a2622f9
Allow no arguments to :cd
...
I often use the bare `cd` command to get back to my home directory.
2019-06-05 09:32:23 -04:00
Kevin Kuehler
753adb9069
widget: Add ProvidesMessage interface
...
Consists of 3 functions
* Store: Access to MessageStore type
* SelectedAccount: Access to Account widget that the target widget
belongs to
* SelectedMessage: Current message (selected in msglist or the one we
are viewing)
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
2019-06-02 10:16:29 -04:00
Drew DeVault
1894a7e91b
Fix infinite recursion in reply.go:findPlaintext
2019-06-02 09:36:21 -04:00
Drew DeVault
cf50b98768
Fetch plaintext part when replying
2019-06-01 19:47:09 -04:00
Galen Abell
28fc9fa53d
Add :save and :pipe commands to viewer
...
* :save takes a path and saves the current message part to that location
* :pipe is the same as pipe on the account page, but uses the current
message part rather than the whole email (ie :pipe gzip -d)
* Refactored account:pipe and extracted common pipe code to
commands.util.QuickTerm
* Added helper command aerc.PushError
2019-05-27 09:37:07 -04:00
Drew DeVault
887ff6550d
Implement :edit in compose screen
2019-05-26 11:58:14 -04:00
Drew DeVault
38e71659ff
Implement :forward
2019-05-25 14:52:57 -04:00
Drew DeVault
cef784bf52
Fix special characters in address.PersonalName
2019-05-25 11:56:56 -04:00
Drew DeVault
1a45b793c7
Implement :help
2019-05-22 11:17:52 -04:00
Drew DeVault
937b33c850
Write new accounts to config and open tab
2019-05-22 10:40:08 -04:00
Drew DeVault
6811143925
New account wizard, part one
2019-05-21 16:53:50 -04:00
Drew DeVault
cc90cd2161
Pass ServerName to tls.Config for SMTP
2019-05-20 17:25:12 -04:00
Drew DeVault
0897413a3e
Implement :next-part, :prev-part
2019-05-20 16:49:39 -04:00
Drew DeVault
511fea3944
Flesh out multipart switcher
2019-05-20 16:43:08 -04:00
Drew DeVault
a9aebe11d7
asdf
2019-05-20 14:01:59 -04:00
Drew DeVault
22cc40f4d4
pipe.go: let tab widget handle ellipsis
2019-05-20 14:01:13 -04:00
Drew DeVault
ef57300faf
Missed a spot
2019-05-19 18:25:38 -04:00
Drew DeVault
455c6f0b77
Rename :delete-message et al to :delete et al
2019-05-19 18:23:34 -04:00
Drew DeVault
fa5d8d7a00
Advance cursor after :delete and :move
...
So that you can repeat the action on the next message if appropriate
2019-05-19 18:21:02 -04:00
Amin Bandali
588a6c785b
Implement :pwd command
2019-05-19 14:36:11 -04:00
Drew DeVault
ca2cd00fe7
Fix scdoc & gofmt issues
2019-05-18 15:34:16 -04:00
Drew DeVault
98da4c9509
s/aerc2/aerc/g
2019-05-17 20:57:10 -04:00
Drew DeVault
2ffbe7a6cd
Remove debug logging
2019-05-17 11:28:32 -04:00
Drew DeVault
eec2bacede
Refactor STARTTLS to prevent downgrade attacks
2019-05-17 11:22:30 -04:00
Drew DeVault
e436780b47
s/Sent/Message sent/
2019-05-16 23:57:38 -04:00
Drew DeVault
ce0d0e887c
Improve reply-all recipient enumeration strategy
2019-05-16 14:16:45 -04:00
Drew DeVault
5701b6e949
Decode email when reading it for quoting
2019-05-16 14:09:57 -04:00
Drew DeVault
7f97e0b605
Don't prefix Re: if prefix already present
2019-05-16 12:42:46 -04:00
Drew DeVault
8be59cae6c
Implement :reply -q and :reply -a
2019-05-16 12:39:22 -04:00
Drew DeVault
475b697bdf
Implement (basic form) of :reply
2019-05-16 12:15:34 -04:00
Drew DeVault
2b3e123cb8
Let caller pass in custom headers to compose
2019-05-16 10:49:50 -04:00
Drew DeVault
b0bf09b98f
Copy sent emails to the Sent folder
...
Or rather, to a user-specified folder
2019-05-15 19:41:21 -04:00
Drew DeVault
2e5ae1946b
Implement move, mv commands
2019-05-14 16:55:50 -04:00
Drew DeVault
db213fd0ae
Implement :copy (aka :cp)
2019-05-14 16:44:59 -04:00
Cole Helbling
b0b3287bbd
Implement abort command
...
This allows the user to close the compose tab without sending their
current composition.
2019-05-14 16:21:45 -04:00
Drew DeVault
2c486cb7f5
Update tab name as subject changes
...
Also moves truncation to the tab widget
2019-05-14 16:18:59 -04:00
Drew DeVault
065da5e372
Add $EDITOR, internal config for compose
2019-05-14 15:25:30 -04:00
Drew DeVault
254e6fe73f
Remove tab before going async
...
To prevent repeated attempts to send
2019-05-14 14:29:50 -04:00
Drew DeVault
f77d7c2c3d
Add distinct keybindings for each compose view
2019-05-14 14:27:28 -04:00
Drew DeVault
928ac1bcd9
Send emails asyncronously
2019-05-14 14:18:01 -04:00
Drew DeVault
29de3297a1
Implement sending emails /o/
2019-05-14 14:07:27 -04:00
Drew DeVault
6c36e04c1f
Add :send-message, prepares & writes email to /tmp
2019-05-14 13:07:48 -04:00
Drew DeVault
17bd2dc4db
Populate "From" header from config for new emails
2019-05-13 16:04:01 -04:00
Drew DeVault
f37508a539
Implement :{next,prev}-field in compose view
2019-05-12 11:21:28 -04:00
Drew DeVault
577248f5e1
Add initial compose widget
2019-05-12 00:06:09 -04:00
Drew DeVault
71c13c9078
"Press any key to close" for completed processes
2019-05-11 14:15:29 -04:00
Tom Lebreux
6e11a020d4
Fix segfault on :select-message for unloaded messages
...
Signed-off-by: Tom Lebreux <tomlebreux@cock.li>
2019-04-17 20:02:12 -04:00
Tom Lebreux
3cd0d5bc28
Fix segfault on :view-message for unloaded message
...
This also fixes segfault on :view-message on empty directory
Signed-off-by: Tom Lebreux <tomlebreux@cock.li>
2019-04-10 15:40:06 -04:00
Drew DeVault
1a4cc31d67
Make tab width of :pipe consistent
2019-03-31 15:13:47 -04:00
Drew DeVault
bbdf9df75e
Add basic filter implementation
2019-03-31 14:24:53 -04:00
Drew DeVault
95875b13f8
Rename FetchMessageBodies to FetchFullMessages
2019-03-31 12:19:30 -04:00
Drew DeVault
27b25174e2
Make the message viewer real, part one
2019-03-31 12:14:37 -04:00
Drew DeVault
143289bbd0
Don't parse mail in worker; send a reader instead
2019-03-31 11:29:57 -04:00
Drew DeVault
5d0402aeea
Add message view commands, :close
2019-03-30 21:45:41 -04:00
Drew DeVault
fa04a1e036
Add basic message viewer mockup
2019-03-30 14:12:04 -04:00
Drew DeVault
2958579ee7
Correct color of error messages
2019-03-30 13:05:00 -04:00
Drew DeVault
700dea23fa
Implement :pipe
2019-03-30 11:58:24 -04:00
Drew DeVault
77ede6eb5a
Add body fetching support code
2019-03-29 22:36:15 -04:00
Drew DeVault
10dd23f05d
Add terminal command context
2019-03-21 16:32:22 -04:00
Drew DeVault
8126d82956
Add context-specific commands
2019-03-21 16:30:23 -04:00
Drew DeVault
312a53e5ff
Implement :delete-message
2019-03-20 23:23:38 -04:00
Drew DeVault
9ff815bb13
s/:term-close/:close/g
2019-03-17 17:45:44 -04:00
Drew DeVault
60b17c473a
Wrap Terminal in TermHost
2019-03-17 17:39:49 -04:00
Drew DeVault
dee0f8938b
Add :term-close
2019-03-17 17:23:53 -04:00
Drew DeVault
16c3f0a893
Handle terminal title, login shell
2019-03-17 17:08:54 -04:00
Drew DeVault
14cb8cb51f
Implement :next-tab, :prev-tab
2019-03-17 16:24:17 -04:00
Drew DeVault
589db742cb
Move exline handling up to aerc, add :term
2019-03-17 16:19:15 -04:00
Drew DeVault
9e28a02f6a
commands: handle case where no account selected
2019-03-17 14:57:05 -04:00
Drew DeVault
13ba53c9d0
Implement :select-message
2019-03-15 22:01:20 -04:00
Drew DeVault
db2146bc91
Fix usage message for :next-message
2019-03-15 21:56:57 -04:00
Drew DeVault
e780c6ee96
Implement :next-message n%
2019-03-15 21:41:39 -04:00
Drew DeVault
f406bf5a3b
Add :quit command
2019-03-15 20:32:09 -04:00
Drew DeVault
22f453f56a
Fix help string for :cd
2019-03-15 10:47:27 -04:00
Drew DeVault
513e8aa94b
Rename :cd -> :cf, add :cd
2019-03-15 10:47:09 -04:00
Drew DeVault
24daef89e0
Implement :{next,prev}-message
2019-03-14 23:41:25 -04:00