Commit graph

352 commits

Author SHA1 Message Date
Alex 8c47687d8e
Implement Fetch BODY[HEADERS.FIELDS] and BODY[HEADER.FIELDS.NOT] 2022-07-15 18:16:06 +02:00
Alex 1f336cad2b
better name and cleanup 2022-07-15 17:55:04 +02:00
Alex 24c6607304
Some more FETCH things work 2022-07-15 16:15:48 +02:00
Alex 64a322b4cb
begin impl fetch body[xxxx] 2022-07-13 17:05:07 +02:00
Alex 2a0aa0d42c
Refactor stuff to indeed release resources 2022-07-13 16:14:10 +02:00
Alex 3b256de3dc
Remove OK [UNSEEN x] responses to SELECT and EXAMINE, and fix STATUS UNSEEN 2022-07-13 15:39:52 +02:00
Alex 956a92377e
reformat 2022-07-13 15:26:55 +02:00
Alex c703e3e2b8
Fix list wildcards 2022-07-13 15:26:00 +02:00
Alex 15a354f949
Correctly implement UID FETCH and UID STORE 2022-07-13 15:00:13 +02:00
Alex cd59be3a00
Implement opportunistic sync based on watch value, and use it 2022-07-13 14:21:14 +02:00
Alex 9fa2e958b3
Begin add watch mechanism to Bayou 2022-07-13 12:30:35 +02:00
Alex 33fa51021c
Small changes to .update() 2022-07-13 11:39:13 +02:00
Alex 70e0da9005
small fixes 2022-07-13 11:32:47 +02:00
Alex faca15f164
LMTP refactoring, implement EXPUNGE 2022-07-13 11:19:08 +02:00
Alex a1ca6d9def
"set flags" as a bayou op 2022-07-13 11:00:35 +02:00
Alex 7959adb8e9
implement STORE 2022-07-12 17:32:57 +02:00
Alex 23e0eff42b
Cleanup 2022-07-12 16:36:03 +02:00
Alex 46d9525984
Implement APPEND 2022-07-12 16:35:11 +02:00
Alex d4e0e66581
Fix Subscribed 2022-07-12 16:02:13 +02:00
Alex 9b7d999fd5
Implement STATUS 2022-07-12 15:59:13 +02:00
Alex fc2e25ce76
Clean up 2022-07-12 15:35:25 +02:00
Alex 5d6e4f7332
cleanup 2022-07-12 15:31:29 +02:00
Alex 7b888ed8cf
Implement mailbox renaming 2022-07-12 15:23:30 +02:00
Alex ad15595f0f
Implement LIST 2022-07-12 13:19:27 +02:00
Quentin 0e22a1c5d2
Push what compiles 2022-07-08 17:48:51 +02:00
Quentin e0322a7761
Add a workaround for mail-parser bug 2022-07-08 17:39:23 +02:00
Quentin 8bfe61d767
Count lines the same way as Dovecot+Cyrus 2022-07-08 16:52:33 +02:00
Quentin 9675cdb545
Use CRLF as line ending in test files 2022-07-08 10:23:07 +02:00
Quentin e10d3987e2
Correctly count lines + bytes 2022-07-07 16:30:53 +02:00
Quentin 0030a4d8b7
Add Maddy FETCH BODY and BODYSTRUCTURE 2022-07-07 16:08:48 +02:00
Quentin 82c7f5909f
Fix envelope + rfc822 message size+line number 2022-07-06 18:42:37 +02:00
Quentin cba06269ab
Add support for mime in mime 2022-07-05 18:27:49 +02:00
Quentin 2f51128467
Add support for MIME types 2022-07-05 17:48:10 +02:00
Quentin cc86653ed8
Refactor BODY parsing to generalize it 2022-07-05 17:08:12 +02:00
Quentin de19924a60
Reformat LMTP 2022-07-05 15:21:41 +02:00
Quentin ee9f9e2c4d
First test based on Dovecot results 2022-07-05 15:21:14 +02:00
Quentin f97b0a10a0
Implement Content-Description 2022-07-05 10:18:08 +02:00
Quentin aca37b64c8
Populate attribute list 2022-07-04 18:14:59 +02:00
Alex 1abfb60b8e
Handling of incoming messages from LMTP seems to work! 2022-07-04 12:44:48 +02:00
Quentin 9b4fcf58df
Fix uidindex tests + body structure for text msg 2022-07-04 12:08:11 +02:00
Alex 05eb2e050b
Code to add mail to inbox 2022-07-01 20:09:26 +02:00
Alex 14b420d9df
small rewrite 2022-07-01 19:41:29 +02:00
Alex a8e33383f4
release lock when no longer needed 2022-07-01 19:33:47 +02:00
Alex e93732d9bb
comments 2022-07-01 19:26:30 +02:00
Alex d5272ce486
Incomming locking loop 2022-07-01 19:23:29 +02:00
Alex 2189f8b64b
WIP incoming loop 2022-06-30 20:35:27 +02:00
Alex 2c61af6684
More work on incoming mails, but no mails yet 2022-06-30 17:40:59 +02:00
Alex 484ad97b65
Skeleton for incoming mail processor 2022-06-30 16:18:08 +02:00
Alex 3277fb16a8
update uid in mailbox list when opening mailbox 2022-06-30 16:04:51 +02:00
Alex 90c20a840d
Implement create_mailbox 2022-06-30 16:04:51 +02:00
Quentin 7efe08a9b8
Implement IMAP fetch internaldate 2022-06-30 15:22:44 +02:00
Alex b15026ec9c
Refactor user to be shared using Arc 2022-06-30 14:03:12 +02:00
Alex 89b5883387
Elementary data structure for mailbox list 2022-06-30 14:03:12 +02:00
Quentin 0f0a8d415e
Implement RFC822.TEXT 2022-06-30 13:36:39 +02:00
Alex 69428eaf25
reformat mailbox.rs and add security 2022-06-30 12:45:22 +02:00
Alex 0048b43f27
Implement move and copy mail 2022-06-30 12:07:01 +02:00
Alex 497ad4b5ea
Split out Examined state and add prototypes for IMAP command handlers 2022-06-30 11:28:03 +02:00
Alex 4adaa988aa
Add prototypes for mailbox functions 2022-06-30 10:59:42 +02:00
Alex 27e3d7a0a2
Rename to Aerogramme 2022-06-30 10:50:50 +02:00
Alex 780547fd6f
Rename mailrage to aerogramme in missing places 2022-06-30 10:50:03 +02:00
Alex 4a412b96aa
Add possibility to fetch full RFC822 2022-06-29 20:10:42 +02:00
Alex b71d967889
Fetch ENVELOPE works \o/ 2022-06-29 20:00:38 +02:00
Alex de71f4b4ed
cleanup 2022-06-29 19:27:32 +02:00
Alex 509e7e4bed
Implement beginning of a FETCH command 2022-06-29 19:24:21 +02:00
Alex a8d0e4a994
Implement IDLE in selected state 2022-06-29 17:58:31 +02:00
Alex 733c59ed80
Cleanup and remove useless imports 2022-06-29 16:05:34 +02:00
Alex 9ef069923b
Add call to testing procedure 2022-06-29 16:04:11 +02:00
Alex d737e33b5a
Rename MailIdent to UniqueIdent and use those to identify mailboxes 2022-06-29 15:52:09 +02:00
Alex b95028f89e
Some refactoring on mailbox structures and views 2022-06-29 15:39:54 +02:00
Alex 8b7eb1ca91
work on prototypes 2022-06-29 13:41:05 +02:00
Alex 1bc109df72
Refactoring 2022-06-29 13:16:58 +02:00
Alex 3cf91429c7
Clean up unused imports 2022-06-29 12:52:58 +02:00
Alex 90b143e1c5
Refactor to allow mutability 2022-06-29 12:50:44 +02:00
Quentin 9979671b00
Try my best to close the connection 2022-06-28 15:52:55 +02:00
Quentin 06b888d969
Implement logout 2022-06-28 15:38:06 +02:00
Quentin 36bbc2138b
cargo fmt + implement noop 2022-06-28 10:49:28 +02:00
Quentin 927b461f25
Switching to upstream boitalettres 2022-06-28 09:34:24 +02:00
Quentin 390bad0ec4
Refactor files in a "mail" crate 2022-06-27 16:56:20 +02:00
Quentin d3f8a6627c
Add support for flags 2022-06-27 11:40:45 +02:00
Quentin 22d0f11173
Implement Recent in Select 2022-06-24 10:28:11 +02:00
Quentin 8a0df56cde
Return UID validity 2022-06-23 14:41:10 +02:00
Quentin cea27474f9
cargo fmt 2022-06-22 17:26:52 +02:00
Quentin ac974184de
Refactor selected 2022-06-22 17:25:04 +02:00
Quentin 50b1972987
Authenticated state works 2022-06-22 16:52:38 +02:00
Quentin 98f55be730
It compiles again! 2022-06-22 14:59:32 +02:00
Alex c04b16a601
Update smtp-server with new LMTP server API 2022-06-21 11:26:04 +02:00
Quentin ca4c2e7505
WIP refactor 2022-06-20 18:09:20 +02:00
Quentin 5dd5ae8bcd
WIP Refactor, code is broken 2022-06-17 18:39:36 +02:00
Quentin 41f1b02171
Use unrestricted IMAP Response 2022-06-17 12:28:02 +02:00
Quentin 212573b4b1
Handle CTRL+C for IMAP 2022-06-17 10:42:02 +02:00
Quentin 5599901b3b
Remove mailstore that is deprecated 2022-06-15 18:44:58 +02:00
Quentin 06145440cd
Fix 2022-06-15 18:42:41 +02:00
Quentin 6b5b53916e
Add LMTP support 2022-06-15 18:40:39 +02:00
Quentin 2bbcb119c4
Add tests 2022-06-15 10:19:38 +02:00
Quentin d7823a6dbf
Add a flag cache 2022-06-14 18:06:42 +02:00
Quentin da6881199c
Rename MailUuid in MailIdent 2022-06-14 11:10:21 +02:00
Quentin 13ed1b3890
Alias Flag to String 2022-06-14 10:35:12 +02:00
Quentin 9c95b261e0
cargo fmt + WIP uid index improvement 2022-06-14 10:19:24 +02:00
Quentin 12b379e7c3
Handle select 2022-06-13 18:01:07 +02:00
Quentin 7113809cb7
Improve SELECT 2022-06-13 12:25:19 +02:00
Quentin bdae537fe7
Add response 2022-06-13 11:58:33 +02:00
Quentin 4914c45377
It compiles 2022-06-13 11:44:02 +02:00
Quentin 1e4d5eb8f1
Compiling with a MPSC channel 2022-06-09 10:43:38 +02:00
Quentin cbcc339d50
Start implementing other endpoints 2022-06-07 13:46:13 +02:00
Quentin 93f943aa80
Add some more commands 2022-06-07 13:27:26 +02:00
Quentin c03be0a8c3
Implement a Mutex 2022-06-07 12:57:24 +02:00
Quentin b82df13082
Refactor 2022-06-07 12:38:59 +02:00
Quentin 16e66cb563
Comment test code again 2022-06-03 20:45:14 +02:00
Quentin acc2ba3909
Put commands in a dedicated file 2022-06-03 17:56:47 +02:00
Quentin e950931c5f
Run cargo fmt 2022-06-03 17:37:39 +02:00
Quentin 3589b0fa4b
Split in multiple files 2022-06-03 17:26:25 +02:00
Quentin c6f0118ef8
Reproduce with a sleep 2022-06-03 14:23:34 +02:00
Quentin 5b3b2955fc
Add test code 2022-06-03 14:11:00 +02:00
Quentin 43f443c7a8
WIP login 2022-06-03 14:00:19 +02:00
Quentin 8f3a34da33
Log on server startup 2022-06-03 12:26:51 +02:00
Quentin 9c14e9cd9e
Create a Mailstore object 2022-06-03 11:58:42 +02:00
Quentin 64e64bed43
Pass data through the stack 2022-06-03 11:38:01 +02:00
Quentin d0128a6d8a
Use BoxFuture 2022-06-03 10:31:55 +02:00
Quentin 3cb7c65b70
Working server 2022-06-02 17:59:29 +02:00
Quentin deced08513
Replace with async 2022-06-02 17:28:26 +02:00
Quentin 3370760891
Working services 2022-06-02 17:12:58 +02:00
Quentin 81e647e881
Simplified types 2022-06-02 17:04:50 +02:00
Quentin 2d1e6bfffb
Working integration v1 2022-06-02 16:29:16 +02:00
Quentin 109337b904
Start bal in mailrage 2022-06-01 18:00:56 +02:00
Alex 0700e27127
Implement ToString and FromStr for bayou timestamp 2022-06-01 00:06:26 +02:00
Alex dd62efa24c
Implement FromStr for MailUuid 2022-06-01 00:02:27 +02:00
Alex 553a15a82a
Implementn basic LMTP server 2022-05-31 17:07:34 +02:00
Alex 01d82c14ca
UUID generator; import kannader smtp server 2022-05-31 15:49:10 +02:00
Alex d53cf1d220
Implement public_login 2022-05-31 15:30:32 +02:00
Quentin c98fc77ca0
Add some doc 2022-05-30 11:50:07 +02:00
Quentin af25c853b9
Explore config file generation 2022-05-25 13:07:19 +02:00
Alex 262eabdca9
First impl of LDAP login 2022-05-23 18:19:33 +02:00
Alex 53881fdb21
Delete password easilyier 2022-05-23 17:36:08 +02:00
Alex cb9b64a184
Add user secret in mix to encrypt keys with password 2022-05-23 17:31:53 +02:00
Alex 378cbd76d0
Fix things 2022-05-20 21:35:50 +02:00
Alex 4a228a3ce7
Simplify 2022-05-20 21:02:53 +02:00
Alex a6e33aafea
Fix things 2022-05-20 13:36:45 +02:00
Alex 3ac6896da9
Implement add_password and delete_password 2022-05-20 13:05:44 +02:00
Alex 46145350eb
Implement some crypto 2022-05-20 12:49:53 +02:00
Alex addaf087ab
implement hash_password and verify_password 2022-05-20 11:45:13 +02:00
Alex f254f3370d
cleanup 2022-05-19 15:17:58 +02:00
Alex 1dcb11643c
CLI skeleton 2022-05-19 15:14:36 +02:00
Alex 6be90936a1
Some refactoring 2022-05-19 14:33:49 +02:00
Alex 1ac56a9198
Refactor K2V/S3 client creation 2022-05-19 13:54:38 +02:00
Alex 4bc3f70e28
cleanup 2022-05-19 12:14:06 +02:00
Alex c7f767b7d2
More construction of things 2022-05-19 12:10:48 +02:00
Alex bc6281a5b5
k2v client from main garage repo 2022-05-18 22:33:27 +02:00
Alex aeec77ae44
Don't try to checkpoint as often 2022-05-18 16:03:27 +02:00
Alex f3cddcb485
First implementation of .checkpoint() 2022-05-18 15:53:13 +02:00
Alex c8be884ad5
sync() and push() seems to be working, todo checkpoint() 2022-05-18 14:54:48 +02:00
Alex cfc02ba368
more stuff 2022-05-18 12:42:25 +02:00
Alex 7a3ce9f819
Skeleton for some stuff 2022-05-18 12:26:50 +02:00