Manos Pitsidianakis
9a46e58029
imap: don't retry command on reconnection
...
If a command fails and connection is restarted, don't try the command
again; it only made sense in the previous connection's context.
5 years ago
Manos Pitsidianakis
b6efb14824
melib: remove Mailbox
...
Refactor Collection from melib to hold what folders have what envelopes.
Frontend accounts will now have a FolderEntry for each logical folder
and will unify many Account fields into one and eliminate a lot of
duplicate/dead code.
5 years ago
Manos Pitsidianakis
e26ed83331
Update native-tls to 0.2.3
5 years ago
Manos Pitsidianakis
c678b16711
melib/jmap: fix macro path
5 years ago
Manos Pitsidianakis
9616fbb544
melib/maildir: fix wrong subscription status in folders
...
MaildirFolder::new() was checking for subscribed status though that is
supposed to be done in MaildirType::new()
5 years ago
Manos Pitsidianakis
b107424258
melib: update GlobMatch algorithm
...
Taken from https://research.swtch.com/glob
5 years ago
Manos Pitsidianakis
6b7dea35dc
melib/parser: fix minor encoded word error
5 years ago
Manos Pitsidianakis
6afac835e0
melib/datetime: fix overflow panic on early date input
5 years ago
Manos Pitsidianakis
f131e01bfc
Fix drawing getting stuck in empty terminal
...
Fix drawing getting stuck in loops when terminal is too small by
checking for it.
5 years ago
Manos Pitsidianakis
f5e694cf5a
Make small cosmetic fixes
5 years ago
Manos Pitsidianakis
f208948651
melib: add mailbox delete/create to IMAP
5 years ago
Manos Pitsidianakis
05b91f1c02
Remove text_processing
...
Unwrap text_processing into melib
In preparation for uploading meli as a separate crate on crates.io.
5 years ago
Manos Pitsidianakis
8b6ea8de9a
Remove ui crate
...
Merge ui crate with root crate.
In preparation for uploading `meli` as a separate crate on crates.io.
Workspace crates will need to be published as well and having a separate
`ui` crate and binary perhaps doesn't make sense anymore.
5 years ago
Manos Pitsidianakis
cd1ed5ef40
melib/mbox: replace unimplemented!() with Error
5 years ago
Manos Pitsidianakis
51d9405c72
melib/mbox: fix parse error
...
First line of an mbox message is a "From ..." header without the colon
required in RFC822. Skip it when parsing the actual e-mail.
This was lost somewhere in the commit history when mbox was added,
weird.
5 years ago
Manos Pitsidianakis
6a096dd405
Add missing copyright preambles
5 years ago
Manos Pitsidianakis
5dc477bcd5
Fix some unused etc warnings
5 years ago
Manos Pitsidianakis
77d9cef6fc
melib/imap: small fixes
...
- Ignore final line ("M__ OK ...") when parsing FETCH response.
- Remove unnecessary import and reword some error messages
5 years ago
Manos Pitsidianakis
254028fa47
melib/threads: fix thread splintering case when inserting reply
...
When inserting reply, its thread group was re-inserted with the reply as
the root. This is a mistake as threads should never be re-inserted, only
modified.
5 years ago
Manos Pitsidianakis
dc63e1f657
Minor changes
5 years ago
Manos Pitsidianakis
1e2acd3b29
melib: add complete() method to ShellExpandTrait
...
complete(force: bool) returns String path segments that when appended to
the path will form a valid location. Example:
- User types: save-attachment 1 /t
- User presses <TAB>.
- complete() returns the suggestion: "mp/"
- User sees: save-attachment 1 /tmp/
complete() uses openat() and getdents64 syscalls hoping it's faster than
using stdlib.
5 years ago
Manos Pitsidianakis
6d9f584de3
Update nix to 0.16.1
5 years ago
Manos Pitsidianakis
a9842cacee
ui: add theming support
...
Configuration flag "terminal.themes" has two default theme entries,
"dark" and "light".
This commit alters only CompactListing for theme support.
5 years ago
Manos Pitsidianakis
e07b5faf6e
melib/threads: already-exists check in threads insert
5 years ago
Manos Pitsidianakis
350fafb515
melib/thread: add attachments field to Thread
5 years ago
Manos Pitsidianakis
5e68d600b9
melib/threads: Split ThreadGroup::Group to Thread
...
Create Thread struct.
5 years ago
Manos Pitsidianakis
d9269335a1
melib/threads: rename thread hashes
...
- Rename ThreadHash to ThreadNodeHash
- Rename ThreadGroupHash to ThreadHash
5 years ago
Manos Pitsidianakis
47a69f8eb9
melib: add ThreadGroup
...
Instead of using Union/Find to gather mail that belongs in the same
e-mail thread together, add a new entity ThreadGroup that ThreadNodes
point to. ThreadGroup represents an actual Thread: A thread root
ThreadGroup::Group or a reply ThreadGroup::Node.
To make semantics more accurate:
- ThreadNode hash should be renamed to ThreadNodeHash
- ThreadGroupHash should be renamed to ThreadHash
- ThreadGroup::Group should be a struct named Thread instead
- move ThreadGroup::Node logic to ThreadNode akin to Union/Find
- rename ThreaddGroup::Group to Thread
5 years ago
Manos Pitsidianakis
1eb49efb22
melib/threads: use all References in thread building
...
WIP
5 years ago
Manos Pitsidianakis
56e3ea1548
melib/imap: refactor early error exit
5 years ago
Manos Pitsidianakis
7f8c638361
melib/imap: add mailbox creation ability
5 years ago
Manos Pitsidianakis
853fe14128
melib: fix two minor email parsing bugs
...
- windows-1250 encoding not being recognized
- spaces in Message-ID header messing up parsing '<' + msg-id + '>'
structure
5 years ago
Manos Pitsidianakis
6835968d9a
melib/datetime: convert date to utc before converting to unix epoch
5 years ago
Manos Pitsidianakis
a365a846b8
Replace StackVec with smallvec::SmallVec
...
SmallVec has a less buggy and better implementation.
5 years ago
Manos Pitsidianakis
ca7d72e732
melib: Replace String with Cow<'static, str>
5 years ago
Manos Pitsidianakis
9fcc868acd
remove chrono
5 years ago
Manos Pitsidianakis
c0ac643f05
melib: add datetime module
...
Datetime module adds POSIX time functions interface
5 years ago
Manos Pitsidianakis
6671fe926e
melib: don't treat missing end boundary as error
...
Don't treat missing end boundary as error in multipart attachments.
python3's nntplib seems to return MIME attachments with this property
5 years ago
Manos Pitsidianakis
8694278369
ui: add auto_choose_multipart_alternative
...
Choose text/html by default if text/plain is empty in
multipart/alternative attachments
This happens in some newsletters I've come upon
5 years ago
Manos Pitsidianakis
3d84f3b9ad
notmuch: remove needless clones
5 years ago
Manos Pitsidianakis
21526b5faf
melib: make Work use FnOnce closures
...
There was no need to use Fn() instead of FnOnce()
5 years ago
Manos Pitsidianakis
92826f982f
melib/attachments: add MultipartType::Related kind
5 years ago
Manos Pitsidianakis
9211913405
meli/backends: honor mailbox subscriptions in IMAP/JMAP
5 years ago
Manos Pitsidianakis
7eceef93e9
melib/backends: remove folder_operation
...
folder_operation functionalities will go to BackendFolder trait
5 years ago
Manos Pitsidianakis
9080e0fd96
melib: rename FolderConf `rename` field to alias
5 years ago
Manos Pitsidianakis
c23cc45edd
melib: fix test import not found
5 years ago
Manos Pitsidianakis
2b6f6ab42c
melib: Add BackendFolder methods, move special usage logic to backend
...
- add count() method to return (unseen, total) counts
- add is_subscribed()
- add set_special_usage() and set_is_subscribed()
concerns #8
5 years ago
Manos Pitsidianakis
8f63572584
Small refactors to avoid implicit unwrap() panics
5 years ago
Manos Pitsidianakis
0201241786
melib/backends: MailBackend::refresh() returns Result
...
Handle cases were refresh() would fail properly. Fixes a crash reported in #13
5 years ago
Manos Pitsidianakis
65efb23f14
melib/MailBackend: add refresh() method
...
Initiate refresh manually.
5 years ago
Manos Pitsidianakis
d2b4057b7b
melib/MailBackend: add connect() method
5 years ago
Manos Pitsidianakis
2e38ea11e2
melib: make MailBackend::is_online() return Result<()>
...
Return Result<()> instead of bool to indicate connection status in order
to be able to show errors to user.
5 years ago
Manos Pitsidianakis
2ed9ffb145
melib/jmap: construct session resource url from user settings
5 years ago
Manos Pitsidianakis
da8cd4e85f
Remove jmap from default features
5 years ago
Manos Pitsidianakis
14eb99f515
JMAP WIP #7
5 years ago
Manos Pitsidianakis
d44a453aed
jmap: add keyword->tag support
5 years ago
Manos Pitsidianakis
aa9a6a3128
melib: add SpecialUseMailbox::detect_usage method
5 years ago
Manos Pitsidianakis
30e9114d9c
jmap: fix warnings
5 years ago
Manos Pitsidianakis
275c9f421f
JMAP WIP #6
5 years ago
Manos Pitsidianakis
791033d2fc
melib/jmap: add byte operations
5 years ago
Manos Pitsidianakis
a41dc6c38a
JMAP WIP #5
5 years ago
Manos Pitsidianakis
1ee8ef7a05
JMAP WIP #4
5 years ago
Manos Pitsidianakis
a1efeed343
JMAP WIP #3
5 years ago
Manos Pitsidianakis
e8611cca2f
JMAP WIP #2
5 years ago
Manos Pitsidianakis
a43f6919cc
JMAP WIP
5 years ago
Manos Pitsidianakis
328b17a995
ui/CompactListing: use Segment Trees to calculate max page column width
...
Given a range of entries that occupy a page (eg [0, 50] for a page of 50
rows high) get the max entry width for this column by using maximum
range queries with segment trees.
5 years ago
Manos Pitsidianakis
d9b568cfb4
melib/envelope: decode other_headers values
5 years ago
Manos Pitsidianakis
7732b851e6
melib: fix minor header parsing errors
...
- set_subject checked if last byte was control character instead of last
character. Characters can be multi-byte, duh.
- email::parser::date didn't provide for Date values that had -0000
instead of +0000 (that's a chrono requirement/bug)
5 years ago
Manos Pitsidianakis
81c70b0136
melib: small test cosmetic fixes
5 years ago
Manos Pitsidianakis
e79d9aa1c2
melib/parser: parse quote-printable CRLF soft breaks
...
Check for CRLF soft breaks after checking for LF ones
5 years ago
Manos Pitsidianakis
9fae0f2fa3
melib/imap: prevent minor blocking cases
5 years ago
Manos Pitsidianakis
f05a4205f7
melib/ui: small fixes
...
- melib/imap: accept quoted strings with escaped quotes in
protocol_parser
- ui/accounts: return unavailabity correctly if folder's worker slot is
empty instead of judging only by its vacancy
- ui/MailView: set view as not dirty if envelope loading from backend
fails so that it stops requesting it in every subsequent redraw
5 years ago
Manos Pitsidianakis
6f76cd9acc
melib: add special_usage() method to BackendFolder
...
Eventually after loading potential usage values from configuration,
backends will be able to change the usage values themselves. IMAP and
JMAP have the ability to set Mailbox roles (IMAP needs LIST-SPECIAL
extension
5 years ago
Manos Pitsidianakis
bce97d71bb
testing/imap_conn: update imapconn shell use
5 years ago
Manos Pitsidianakis
504b658f68
melib/imap: add UidFetchResponse struct and parser
...
Add handwritten parser for UID FETCH responses and use it for all UID
FETCH calls.
5 years ago
Manos Pitsidianakis
569127fac5
melib/imap: detect untagged CAPABILITY responses
...
Gmail sends an untagged CAPABILITY response before accepting login, so
be smarter when logging in
5 years ago
Manos Pitsidianakis
8235af9237
melib/imap: quote mailbox names on SELECT/EXAMINE
5 years ago
Manos Pitsidianakis
a20e08eb43
imap: treat \NoSelect mailboxes as empty
...
\NoSelect are mailboxes that can't be selected, thus treat them as if
they are empty.
5 years ago
Manos Pitsidianakis
40e928dad3
Push version to 0.4.1
5 years ago
Manos Pitsidianakis
0eaf17871a
melib: add set_tags command in BackendOp
5 years ago
Manos Pitsidianakis
dab9b39f4d
melib/imap: detect tag (\* flag) support
5 years ago
Manos Pitsidianakis
46a807eee1
melib: remove control characters from subject
5 years ago
Manos Pitsidianakis
d048d8566d
ui: add format=flowed if text/plain att is the only one
5 years ago
Manos Pitsidianakis
9d8d3e09f4
melib: remove unused methods from BackendOp
5 years ago
Manos Pitsidianakis
a059e4ad4c
melib: add summary field to MeliError
5 years ago
Manos Pitsidianakis
7010ee7495
melib/mbox: send Finished in Mbox get
5 years ago
Manos Pitsidianakis
ef26b03bb6
Add some documentation
5 years ago
Manos Pitsidianakis
bca33370cc
Add tag settings in UI config module
5 years ago
Manos Pitsidianakis
258b6c8fe8
melib: add tags() method in MailBackend
...
Add tags() method that returns Option<Arc<RwLock<BTreeMap<u64, String>>>>.
The BTreeMap holds available tags in a mail backend and uses the tag's
hash as key.
The method returns an Option because not all backends may support
tagging.
5 years ago
Manos Pitsidianakis
6653357d54
melib/notmuch: fix compilation errors
5 years ago
Manos Pitsidianakis
bb486ca9d8
melib: Remove quotes from addresses in email/parser.rs
5 years ago
Manos Pitsidianakis
3dfb2f4f2c
melib: fix out-of-bounds parser bug
5 years ago
Manos Pitsidianakis
58209d6f6b
Replace some panics with errors
5 years ago
Manos Pitsidianakis
ba52c59859
bin: add backend specific validation functions for --test-config flag
5 years ago
Manos Pitsidianakis
4677f9c6bb
melib/imap: initialise uid_store folders in folders()
5 years ago
Manos Pitsidianakis
afff63c781
ui: load vcards to addressbook with vcard_folder account setting
5 years ago
Manos Pitsidianakis
689327651f
melib/vcard: add parser for vcard files
5 years ago
Manos Pitsidianakis
3dc0cb1963
imap: send 'finished' signal when watch thread dies
5 years ago
Manos Pitsidianakis
af365fa8d4
Set 600 perm mode to all created files
...
When creating a data file, set permissions to read/write for the user.
5 years ago
Manos Pitsidianakis
eecec551c1
Display watch thread errors to user
...
Show a proper notification with the error message to the user instead of
just logging it on debug-tracing.
5 years ago
Manos Pitsidianakis
b8e4a35963
melib/imap: add default capabilities to SUPPORTED_CAPABILITIES
5 years ago
Manos Pitsidianakis
41a678c6ef
melib: make MailBackend::folders return Result
...
Change folders() signature:
- fn folders(&self) -> FnvHashMap<FolderHash, Folder>;
+ fn folders(&self) -> Result<FnvHashMap<FolderHash, Folder>>;
Imap may not be online, therefore we need the ability to return an
error.
5 years ago
Manos Pitsidianakis
424b244bb7
fixup some TODO and FIXMEs
5 years ago
Manos Pitsidianakis
05d9ca6e0d
small fixes
5 years ago
Manos Pitsidianakis
ce646abc7a
ui: add send confirmation dialog in compose tab
...
Confirm before sending mail
5 years ago
Manos Pitsidianakis
51628ac9d2
ui: move list_management mod to melib
...
list_management module includes some small functions to handle mailing
list metadata (List-* headers)
5 years ago
Manos Pitsidianakis
449a24d075
ui: ListActions changes
...
- Parse List-Post value like List-Unsubscribe: comma separated angle bracket limited list of <mailto:> or <url> values
- Check if List-Archive value is angle bracket delimited
5 years ago
Manos Pitsidianakis
fc2d9a684d
melib/imap: set has_attachments based on BODYSTRUCTURE
...
fetch BODYSTRUCTURE along with ENVELOPE from server and set
has_attachments based on the MIME structure of the envelope.
Notes: BODYSTRUCTURE returns the MIME structure of the envelope without
the data, so if it includes a multipart/mixed it *should* have
attachments.
ENVELOPE returns basic headers of the message like Sender, Subject, Date
etc.
5 years ago
Manos Pitsidianakis
b2cd4f4b7a
melib/imap: put imap folders in RwLock instead of Mutex
...
This should prevent lockups if the IMAP conn thread gets blocked
5 years ago
Manos Pitsidianakis
953c3aa9d0
melib: Add parameters field in ContentType::Text
...
Intending to add the option to set the parameter format=flowed in the
next commits
5 years ago
Manos Pitsidianakis
f8a1a6caa5
melib: replace find_thread_group with find_root_hash
...
thread_group property of ThreadNode doesn't yet reflect the actual root
ThreadNode (the root of the thread, that is). So find the root manually
instead.
5 years ago
Manos Pitsidianakis
dfa83e486c
melib: add into_iter() for &StackVec<T>
5 years ago
Manos Pitsidianakis
04e1137b36
melib: add "On ${date} ${author} wrote" heading in replies
5 years ago
Manos Pitsidianakis
321be8555f
Cleanup startup error exit paths
...
Make startup methods return Results so that the main binary can exit
cleanly instead of using std::process::exit from arbitrary positions,
which exits the process immediately and doesn't run destructors.
5 years ago
Manos Pitsidianakis
77936e0cd5
melib: add notmuch backend
...
Missing:
- Watching for updates functionality
- Using tags
- Search
5 years ago
Manos Pitsidianakis
7463248da8
melib: change BackendOp::set_flag() signature
5 years ago
Manos Pitsidianakis
ede512200b
conf: move FolderConf to melib
...
This will be needed to add notmuch-specific configuration settings in
the FolderConf struct in the next commit
5 years ago
Manos Pitsidianakis
8f36678abf
melib: make Backendfolder::children return slice
5 years ago
Manos Pitsidianakis
56cda63c83
Fix some warnings
5 years ago
Manos Pitsidianakis
f83db67a38
melib/imap: don't stop IDLE session
...
Previous behaviour: connection with IDLE was stopped every 5 minutes to
poll the other threads. As a result messages received within that time
window when there was no IDLING were never received.
Current behaviour: polling is done in the main connection.
5 years ago
Manos Pitsidianakis
dce1c39b48
ui: add mailcap support
5 years ago
Manos Pitsidianakis
5761f854e2
melib: Add FolderPermissions
...
permissions() method on BackendFolder and SetPermissions in
FolderOperation enum.
5 years ago
Manos Pitsidianakis
c1902f96b5
imap: add UIDVALIDITY check
...
On UIDVALIDITY change, discard cache and force rescan.
5 years ago
Manos Pitsidianakis
06d99c7f92
ui: Add save attachment command
...
use as `save-attachment ATTACHMENT_INDEX PATH`
5 years ago
Manos Pitsidianakis
580f0be8a4
imap: fix cases that would block connection
...
Fix blocking if TLS negotiation can't start
Fix blocking if IDLE connection dies.
5 years ago
Manos Pitsidianakis
a907b9c21d
Fix melib test errors
5 years ago
Manos Pitsidianakis
8b781cbbe0
melib: StackVec bounds fix
5 years ago
Manos Pitsidianakis
e600b0252f
text_processing: add line_break method
...
In preparation for format=flowed support, add a line_break method in the
text_processing Trait, now renamed from Graphemes to TextProcessing.
5 years ago
Manos Pitsidianakis
098982015b
ui/conversations: show all participating addresses in entry
...
Show all unique From: values of addresses in thread entries in
Conversations
5 years ago
Manos Pitsidianakis
229e879c26
ui/imap: select user given folder before search
...
IMAP search() didn't select a folder before searching, thus searching
the mailbox the previous user of self.connection had selected.
5 years ago
Manos Pitsidianakis
99697a8fd5
ui: Add search for IMAP
...
Add basic search utilising the default SEARCH capability.
5 years ago
Manos Pitsidianakis
7936aef476
Fix infinite watch threads spawning
...
Watch threads were launched every time the account's online status was
checked, added a check to only do it when it was previously offline.
5 years ago
Manos Pitsidianakis
749d453f00
ui: add query parsers
5 years ago
Manos Pitsidianakis
61fa6d3d4b
ui: show supported IMAP CAPABILITIES list in Status
...
In status page for IMAP accounts, show a list of CAPABILITIES and
whether meli supports them
5 years ago
Manos Pitsidianakis
f56b89dde3
melib: add as_any() method to MailBackend trait
...
Cast the trait object into an &Any object. Then we can downcast it to
its actual type with downcast_ref().
5 years ago
Manos Pitsidianakis
d926cadc4d
melib: remove argument from MailBackend operation()
...
The operation() method on the MailBackend trait returns a trait object
that can read or modify an Envelope directly from the backend. This is
used to get eg the envelope's text, or set flags. It has two arguments,
envelope hash and folder hash.
Only the Maildir backend needed the latter argument, and it can be replaced with a dictionary to match envelope hashes to folder hashes within the Maildir backend.
5 years ago
Manos Pitsidianakis
78eecbb104
melib: Hide Envelope behind RwLock
...
Envelope can now only be accessed from within a RwLock. Two new structs
are introduced: EnvelopeRef and EnvelopeRefMut. These hold a reference
to an Envelope and the mutex guard that keeps them alive.
This change allows sharing of the envelopes hash map amongst threads.
5 years ago
Manos Pitsidianakis
d1184d4ea5
ui/search: add sorting in search
5 years ago
Manos Pitsidianakis
3af6f338ce
add sqlite3 feature WIP
5 years ago
Manos Pitsidianakis
0566937a76
imap: reconnect if connection timed out
5 years ago
Manos Pitsidianakis
e5b6faf6bd
Add account online status
...
Add a boolean field to accounts that states if the account can be
accessed. Local backends (Maildir/mbox) return true every time, but
remote backends (IMAP) may not. Accounts start as offline and then get
initialised when their status goes to online. Right now if an IMAP
account startup but later get offline, there are crashes. With this
change the account can be switched back to offline when that happens.
5 years ago
Manos Pitsidianakis
1a02491f04
ui/compose: add modification detection
...
Detect if modifications were done to the draft in the compose tab so
that we can ask for confirmation if user wants to quit an unsaved draft.
5 years ago
Manos Pitsidianakis
5beed91df2
contacts: add support for externally managed contacts
...
Adds support for contacts (Cards) marked as `external_resource` which
prevents modifications from happening. No way to import external
contacts is added yet.
5 years ago
Manos Pitsidianakis
dc525b9ddd
contacts: make CardId an enum
...
CardId is the "Primary Key" of the contact type, Card. Meli-created
contacts had UUIDs for their CardId. In order to import external
contacts and ensure their primary key is the same each time, CardId is
made into an enum to add hashing as a choice.
5 years ago
Manos Pitsidianakis
f3e08c17aa
Update uuid dependency to 0.7.4
5 years ago
Manos Pitsidianakis
cfe6138c44
melib: add VCard parsing for contacts
...
Add rough VCard conversion for melib::Card, to use eventually with
contacts.
5 years ago
Manos Pitsidianakis
52a89ddf94
Add license comment to melib/src/structs.rs
5 years ago
Manos Pitsidianakis
d32f0982a9
melib: StackVec fixups
...
Fix bound checks and add clear() method
5 years ago
Matthias Beyer
a0602274f8
Run cargo fmt
5 years ago
Manos Pitsidianakis
b7edec0274
Bump version to 0.3.2
5 years ago
Manos Pitsidianakis
47d60f480a
Add path shell expansion to logging and attachments
5 years ago
Manos Pitsidianakis
e35a93336a
Add GPG signing and sig verifying
5 years ago
Manos Pitsidianakis
5a262f3ffc
maildir: check for moved mail before moving
...
When moving mail from new/ to cur/ in a Maildir folder, don't panic if
it fails; someone else must have moved it.
5 years ago
Manos Pitsidianakis
250129665b
Pass attachment names through decoding
...
Attachment names in Content-Type parameters can be encoded (eg
=?UTF-8...), so try decoding with phrase() first
5 years ago
Manos Pitsidianakis
68c40a2920
melib: return Result with error when an IO operation fails
...
Don't unwrap anything because this might be temporary, for example a
short IMAP disconnection.
5 years ago
Manos Pitsidianakis
9d69a06807
melib: add ShellExpandTrait
...
Add trait to expand "~" and environment variables in paths.
5 years ago
Manos Pitsidianakis
0ece51612f
update bincode to 1.2.0
5 years ago
Manos Pitsidianakis
fa121820f7
Bump version to 0.3.1
5 years ago
Manos Pitsidianakis
c44056a9ff
melib: fix bug in parser::parts
...
At a certain point when expecting a line terminator parts() checks for
'\n' but not '\r\n'. This resulted in all multipart attachments coming
from b"\r\n" sources like IMAP having only one part when parsed.
5 years ago
Manos Pitsidianakis
91ae539de1
Small fixes
5 years ago
Manos Pitsidianakis
f27b815aa7
Add verification of GPG signed messages
5 years ago
Manos Pitsidianakis
9305e543cf
melib: add a `body` field to Attachment
...
Attachment needs to know the range of bytes where the body part of the
attachment is located. The Attachment.raw field contains the entire
attachment, headers and body. The new Attachment.body fields contains a
`StrBuilder` which contains the offset and length of the body part inside
`raw`.
5 years ago
Manos Pitsidianakis
5a53020f3d
Add debug-tracing feature to all crates
...
The feature needs to be defined in all manifests in order to be enabled
in all crates.
5 years ago
Manos Pitsidianakis
ee82ae175a
imap: add support for imaps connections
...
Take port value and a `use_starttls` flag from the configuration file.
5 years ago
Manos Pitsidianakis
9563007069
Turn off debug tracing prints in stderr by default
5 years ago
Manos Pitsidianakis
6e75160b70
melib: turn unicode algos and backends into features
5 years ago
Manos Pitsidianakis
f066f35410
melib: add get_tags to support subaddressing
5 years ago
Manos Pitsidianakis
bee1502499
melib: make References public
5 years ago
Manos Pitsidianakis
32fe8a8b9b
melib: move email.rs back
5 years ago
Manos Pitsidianakis
7accae1774
melib: split address.rs from email.rs
5 years ago
Manos Pitsidianakis
b08001ca5d
melib: create address.rs from email.rs
5 years ago
Manos Pitsidianakis
93de60b6d1
maildir: allow Maildir stores as root_folder
...
Allow top level directories that are not valid maildir folders but
include maildir folders as root_folder of an account.
5 years ago
Manos Pitsidianakis
fb7b038ee1
ui: add set_seen shortcut in {Compact,Conversation}
...
Shortcut sets an entire thread as seen.
5 years ago
Manos Pitsidianakis
7dc3efaedd
imap: allow conn to be offline and retry on demand
...
Split the TlsStream of the live IMAP connection to an enum to allow both
offline and online states. The connection is restarted if offline when
requested.
5 years ago
Manos Pitsidianakis
b98ce8828c
melib: fix wrong validation in Maildir save()
...
Path of folder was compared to folder names and saving to eg
'INBOX/Sent' would not result into mail being saved to Folder { name:
'Sent', path: 'INBOX/Sent' }
5 years ago
Manos Pitsidianakis
79212621af
Bump version to 0.3.0
5 years ago
Manos Pitsidianakis
8795c2da4f
ui: small configuration fixes
...
- unused options were removed,
- renamed `index` conf option to `index_style`
5 years ago
Manos Pitsidianakis
080b8ae775
imap: add log entry on connection retry & failure
5 years ago
Manos Pitsidianakis
9e2bfa22b1
melib: add logging module
5 years ago
Manos Pitsidianakis
817c338a13
melib: fix metadata updates in Envelope updates
5 years ago
Manos Pitsidianakis
059d86de93
map: restart connection on failure in read_lines
5 years ago
Manos Pitsidianakis
bfc36f63de
imap: add byte cache for Envelopes in IMAP backend
5 years ago
Manos Pitsidianakis
f394fde143
add priority and info to jobs and workers
...
jobs now have a priority given to them, in order to parse some mailboxes
(eg INBOX, Sent) first.
worker threads now can set their names and status
5 years ago
Manos Pitsidianakis
81a55abc7c
Update crossbeam to 0.7.2 and remove chan
5 years ago
Manos Pitsidianakis
ecb3fd7f3d
Add dyn keyword to Trait objects
...
And fix some unused var warnings as well
5 years ago
Manos Pitsidianakis
d1d11356db
imap: get() ENVELOPE instead of RFC822.HEADER; it's faster
5 years ago
Manos Pitsidianakis
335a1011de
imap: add watch
5 years ago
Manos Pitsidianakis
c3e3c98fb0
melib: filter subscribed folders in MailBackend::new()
5 years ago
Manos Pitsidianakis
64dc44f18f
imap: replace unwraps with checks
5 years ago
Manos Pitsidianakis
525bd16493
imap: add folder operations in backend
5 years ago
Manos Pitsidianakis
c9f7b41e47
imap: continuous payload delivery in async workers
5 years ago
Manos Pitsidianakis
c561814cd6
imap: add `danger_accept_invalid_certs` option
5 years ago
Manos Pitsidianakis
c2c5f2db69
melib: add Failure to RefreshEventKind
5 years ago
Manos Pitsidianakis
0812242f60
Add IMAP backend
...
TODOs: new message events (untagged responses)
5 years ago
Manos Pitsidianakis
3f7d962abd
melib: remove ThreadTree, use ThreadNodes for root_set
...
Remove ThreadTree index in Threads {} struct. Keep a Vec<ThreadHash> for
root_set state of mailbox instead of rebuilding ThreadTrees every
time.
5 years ago
Manos Pitsidianakis
dc2184a9de
melib: add Folder operations in mail backends
...
Add following operations in mail backend:
- Create,
- Delete,
- Subscribe,
- Unsubscribe,
- Rename
5 years ago
Manos Pitsidianakis
1328f994f3
Make config objects Serializable with serde
5 years ago
Manos Pitsidianakis
b474b44b10
Add special use semantics for mailboxes
5 years ago
Manos Pitsidianakis
76909a1959
add folder subscriptions
5 years ago
Manos Pitsidianakis
84a042411d
melib: remove unnecessary unsafe impls
5 years ago