Commit graph

226 commits

Author SHA1 Message Date
Clément DOUIN
7ad1772c83
update pimalaya libs, prepare v0.9.0 2023-08-28 09:05:14 +02:00
Clément DOUIN
43c270bd44
update changelogs 2023-08-06 14:31:15 +02:00
Clément DOUIN
2b0f378a31
bump pimalaya libs 2023-08-06 09:23:23 +02:00
Clément DOUIN
176da9eeeb
add pgp commands support back 2023-08-05 22:53:39 +02:00
Clément DOUIN
0eed8f355d
add gpg support 2023-08-05 12:10:25 +02:00
Clément DOUIN
183c0272cc
fix pgp exports 2023-08-04 21:33:15 +02:00
Clément DOUIN
1ecceca1e6
bump libs 2023-08-03 10:15:02 +02:00
Clément DOUIN
99ec7c6d97
add pgp support 2023-08-02 18:03:47 +02:00
Clément DOUIN
183aa2f306
bump pimalaya-email a912fa 2023-07-20 12:54:08 +02:00
Clément DOUIN
a8bd265181
bump pimalaya-oauth2 0.0.4 with async 2023-07-20 11:43:28 +02:00
Clément DOUIN
fff82498ba
release v0.8.4 2023-07-18 17:48:19 +02:00
Clément DOUIN
5c360da80b
release v0.8.3 2023-07-18 17:24:52 +02:00
Clément DOUIN
cb1178ee9d
release v0.8.2 2023-07-18 16:40:08 +02:00
Clément DOUIN
679007ba64
resolve folder aliases from backend implems instead #95 2023-07-17 11:31:28 +02:00
Clément DOUIN
2f4bbcb1db
set up coredump 2023-07-13 15:39:41 +02:00
Clément DOUIN
e821fe06d9
update lib versions and changelog 2023-07-09 22:31:39 +02:00
Clément DOUIN
cac8280c8c
use tokio async runtime
last fixes before merge
2023-07-05 09:04:40 +02:00
Clément DOUIN
7a6ebc0cd0
add new datetime options 2023-06-15 16:11:08 +02:00
Clément DOUIN
c254f64569
refactor builders and sync 2023-06-13 10:14:20 +02:00
Clément DOUIN
696834c8dc
fix rust toolchain hash 2023-06-04 00:06:11 +02:00
Clément DOUIN
dfff9064d7
release v0.8.0 2023-06-03 23:38:43 +02:00
Clément DOUIN
7aff3bbf9d
fix imap list envelopes pagination 2023-06-01 12:47:02 +02:00
Clément DOUIN
b800d6e6fc
fix empty plain taken instead of html 2023-05-31 21:49:52 +02:00
Clément DOUIN
d557d9e1df
prepare v0.8.0 2023-05-31 16:12:18 +02:00
Clément DOUIN
32b31db175
fix back read -t html 2023-05-30 23:07:10 +02:00
Clément DOUIN
65ac0c7702
improve tpl builders api 2023-05-30 00:34:15 +02:00
Clément DOUIN
5da1148dc9
refactor wizard to handle password and oauth2 configuration 2023-05-19 15:26:53 +02:00
Clément DOUIN
d814ae904a
drastically simplified configs
Also started to refactor wizard (WIP).
2023-05-16 00:11:37 +02:00
Clément DOUIN
0ff77b5179
move id mapper from lib to CLI 2023-05-14 21:41:31 +02:00
Clément DOUIN
53538e36f9
fix sync deadlocks 2023-05-12 21:59:53 +02:00
Clément DOUIN
f8eed6ad14
fix smtp cmd password issue 2023-05-08 16:07:52 +02:00
Clément DOUIN
441ce40e09
make secrets have default implem
Secrets use by default the keyring, and the entry is based on the name
of the current account to avoid conflicts.
2023-05-07 20:52:13 +02:00
Clément DOUIN
5d21433816
fix smtp default config, fix cargo imports 2023-05-06 21:23:16 +02:00
Clément DOUIN
b478c545ad
refactor imap oauth2 and password config using sub crates from lib 2023-05-06 15:04:55 +02:00
Clément DOUIN
f026e48733
improve oauth2 config deserialization and configuration 2023-05-05 00:07:27 +02:00
Clément DOUIN
21f67bc7f5
set up imap oauth2 config 2023-05-04 12:17:43 +02:00
Clément DOUIN
a7e9c560c2
release v0.7.3 2023-05-01 01:28:31 +02:00
Clément DOUIN
84003f951a
improve cross compilation, prepare v0.7.2 2023-05-01 00:19:59 +02:00
Clément DOUIN
9cf5003697
update changelog 2023-04-25 09:39:49 +02:00
Clément DOUIN
072f488d89
replace himalaya-lib by pimalaya-email 2023-04-20 12:13:27 +02:00
Clément DOUIN
7b3a9e4cc7
improve cargo features naming and organization 2023-03-29 18:09:39 +02:00
Clément DOUIN
69590f6986
added vendored cargo feature 2023-03-11 17:33:57 +01:00
Clément DOUIN
d5efd03bcd
bump himalaya lib 3aa70c4b 2023-02-28 02:16:24 +01:00
Clément DOUIN
501c7f18f5
add flag seen by default for send and save commands 2023-02-23 18:23:15 +01:00
Clément DOUIN
fb324878fa
improve global options, add account config sync-folders-strategy 2023-02-22 13:20:58 +01:00
Clément DOUIN
3631ca714b
fix flags case sensitivity 2023-02-20 17:41:26 +01:00
Clément DOUIN
0ab652b4b6
bump himalaya-lib 8c53868 2023-02-20 11:57:41 +01:00
Clément DOUIN
4b3280cbbb
bump himalaya-lib b1a1834d 2023-02-20 10:03:55 +01:00
Clément DOUIN
bfb572acbd
fix config deserialization issues 2023-02-19 08:51:19 +01:00
Clément DOUIN
efd24251e0
bump himalaya-lib version 2023-02-18 10:08:26 +01:00
Clément DOUIN
beba35d57e
use develop branch of himalaya-lib 2023-02-16 16:15:30 +01:00
Clément DOUIN
509b09d533
prepare v0.7.1
Those commits have been stashed then applied due to merge issue:

add ability to sync specific folders f7585eb
add expunge command 1c0b7fb
update readme links to documentation e1c8cf5
fix other doc typos 9c27165
reword title of the project 1eaac7d
reword title of the project bis a7419d6
fix broken links in changelog 26b0311
prepare v0.7.1 2b5e58e
2023-02-14 16:47:02 +01:00
Clément DOUIN
694173b534
release v0.7.0 (#433)
* update codebase with email lib changes (#431)

update himalaya-lib, rename remaining mbox vars

add missing methods from lib

update changelog

* fixed missing folder aliases #430

* improve README links

* fix README repology link

* fix README repology table

* fix README repology table 2

* center README repology table

* fix README cosmetic issues

* fix README cosmetic issues 2

* fix README title

* fix README wiki links

* fix lock file

* prepare v0.6.2

* fix ci

* try some musl builds #356

* add musl build to artifact #356

* add musl build to deployment pipeline #356

* migrate clap v4, add man command #419

* add option to choose color manually #407

* update links and badges

* update matrix badge

* add github release version badge

* update badges links

* fix code bloc type

* fix tests

* fix cargo lock

* generate all man pages for all subcommands #419

* fix query and headers arg parsers

* fix invalid flags and options due to clap v4 migration

* fix tests

* remove -l|--log-level option

* refactor contributing guide

* update lib

* fix flags string printer

* make commands read, attachments, copy, move and delete accept multiple ids

* fix ids arg parser

* fix flags subcommands conflicts between ids and flags

* flip back copy and move arguments

* add issue template (#439)

* update lib, prepare for sync feature

* update himalaya lib, fix senders and config

* update lock file himalaya lib

* fix sync enabling issues

* fix wrong imap backend init in main file

* fix notmuch backend post sync feature

* configuration wizard (#432)

* make DeserializedConfig::path more robust

With this change, himalaya uses the crate `dirs` in order to follow XDG
specifications on Unix, Known Folder on Windows and Standard Directories
on MacOS. This gives us much smoother cross-platform support. It still
has the same fallbacks (`$HOME/.config/himalaya/config.toml` and
`$HOME/.himalayarc`.)

Additionally, this commit removes a bit of in-house code-bloat.

* add wizard entrypoint and basic structure

* wip

* feat: impl Serialize for all DeserializedConfigs

* feat: select default account and write to file

* feat: add SMTP part of wizard

* build: update lockfile

* refactor: separate out multiple files for wizard

* style: friendlier and prettier messages

* feat: add maildir part of wizard

* feat: add notmuch part of wizard

* chore: clippy lints and reorder prompts

* fix: contrived solution to serializing None values

* fix: allow empty Option field when deserializing

* style: address PR review comments

* fix: utilize notmuch lib in finding database path

* fix notmuch wizard

---------

Co-authored-by: Clément DOUIN <clement.douin@posteo.net>

* add account sync progress bar

* improve sync spinner

* make the sync dry run flag show patches without applying them

* update himalaya lib, increase imap session pool size

* add disable cache flag

* add nlnet logo in readme

* update himalaya lib deps, make use of sync reports

* prepare v0.7.0

* bump rustc v1.67.0 and clap v4.1.4

* bump himalaya lib v0.5.1, fix flake lock file

---------

Co-authored-by: janabhumi <dmitriy@ideascup.me>
Co-authored-by: Knut Magnus Aasrud <km@aasrud.com>
2023-02-08 16:03:45 +01:00
Clément DOUIN
d29b227c4b
prepare v0.6.1 2022-10-12 16:47:44 +02:00
Clément DOUIN
bb8f63e4b0
update code for sendmail sender lib feature 2022-10-12 13:59:20 +02:00
Clément DOUIN
98929d687b
update himalaya-lib for smtp and imap ssl option 2022-10-12 00:23:53 +02:00
Clément DOUIN
9630a6f108
update changelog 2022-10-11 16:37:59 +02:00
Clément DOUIN
82133b30d9
update lib v0.3.1, use MIT license 2022-10-10 18:14:56 +02:00
Clément DOUIN
8125a55bbe
use himalaya-lib from develop branch instead 2022-10-07 10:24:25 +02:00
Clément DOUIN
4fe5d246f1
fix notmuch backend feature 2022-09-29 00:44:31 +02:00
Clément DOUIN
29aa383147
bump himalaya lib v0.2.0 2022-09-28 23:28:05 +02:00
Clément DOUIN
a3686c1c44
clean config refactor 2022-09-22 16:38:38 +02:00
Clément DOUIN
a5c4fdaac6
move backend to lib folder (#340) 2022-06-26 21:47:04 +02:00
TornaxO7
3b2991ae56
bumping lettre to 0.10.0-rc.7 (#391)
* bumping lettre to 0.10.0-rc.7

* executed `cargo build`
2022-06-05 17:51:34 +02:00
TornaxO7
ca67780341
updating the version of lettre (#389) 2022-06-04 11:17:29 +02:00
Clément DOUIN
3f5feed0ff
extract account and config from cli to lib (#340) 2022-05-28 17:07:29 +02:00
Clément DOUIN
37572e6c23
prepare release v0.5.10 2022-03-20 21:19:45 +01:00
Clément DOUIN
87fc37729f
bump maildir version with windows support (#346) 2022-03-20 21:17:21 +01:00
Clément DOUIN
b2cffd22f1
use cargo workspace feature (#340)
For now, everything has been moved as it is in the "cli"
workspace. The next step is to separate the "lib" from the "cli".
2022-03-16 09:57:24 +01:00
Clément DOUIN
4f6f884962
prepare release v0.5.9 2022-03-12 18:02:46 +01:00
Clément DOUIN
86b41e4914
introduce --header arg for read command (#338) 2022-03-12 13:05:57 +01:00
Clément DOUIN
04cce37316
prepare release v0.5.8 2022-03-04 14:36:16 +01:00
Clément DOUIN
f06beb61ae
make one cargo feature per backend (#318) 2022-03-04 14:19:54 +01:00
Clément DOUIN
4e24d04faf
update changelog, prepare v0.5.7 2022-03-01 23:14:34 +01:00
Clément DOUIN
c87512dbd4
make maildir envelopes selectable by short md5 hash 2022-02-27 10:23:58 +01:00
Clément DOUIN
e4aa569458
init notmuch backend 2022-02-25 20:26:50 +01:00
Clément DOUIN
158bc86cfa
release v0.5.6 (#301)
* make use of mailparse::MailAddr

* move addr logic to a dedicated file

* update changelog

* add suffix to downoalded attachments with same name (#204)

* implement sort command (#34)

* introduce backends structure (#296)

* implement backend structure poc

* improve config namings

* improve account namings and structure

* rename imap vars to backend

* maildir backend (#299)

* refactor config system, preparing maildir backend

* rename deserializable by deserialized

* wrap backend in a Box

* reword backend trait methods

* merge list envelopes functions

* remove find_raw_msg from backend trait

* remove expunge fn from backend trait

* rename add_msg from backend trait

* init maildir integration tests, start impl maildir backend fns

* implement remaining methods maildir backend, refactor trait

* improve backend trait, add copy and move fns

* remove usage of Mbox in handlers

* reorganize backends folder structure

* move mbox out of domain folder

* rename mbox entities

* improve mbox structure

* remove unused files, move smtp module

* improve envelope, impl get_envelopes for maildir

* link maildir mail entry id to envelope id

* use erased-serde to make backend get_mboxes return a trait object

* remove unused mbox files

* rename Output trait

* make get_envelopes return a trait object

* remove unused impl for imap envelope

* update backend return signature with Box

* replace impl from imap::Fetch to mailparse::ParsedMail

* split flags by backends

* remove unused flags from msg

* remove remaining flags from domain

* impl maildir copy and move, improve maildir e2e tests

* set up imap backend e2e tests

* move domain/msg to msg

* repair broken tests

* fix maildir envelopes encoding issues

* add date column to maildir envelopes

* implement maildir list pagination

* improve maildir subdir path management

* add pgp and maildir features to readme

* update changelog

* bump version v0.5.6
2022-02-22 16:54:39 +01:00
Clément DOUIN
585fa77af5
release v0.5.5 (#290)
* update main screenshot readme

* add contributing file

* update changelog

* doc: remove roadmap from reame

* improve main comments

* improve arg and handler logs

* fix multiple recipients issue (#288)

* add notify-query config option (#289)

* set up end-to-end encryption (#287)

* init basic pgp encrypt/decrypt

* add small rpgp poc for (#286)

* improve decrypt parts logs

* add pgp-decrypt-cmd to config

* add pgp-encrypt-cmd to config

* init pgp signature

* improve decrypt part readability

* improve encrypt multipart, remove sign

* remove unused md5 lib

* add encrypt arg to reply and forward commands

* fix typos

* prepare v0.5.5
2022-02-08 14:50:09 +01:00
Clément DOUIN
e33a9a72e9
release v0.5.4 (#285)
* replace bsd3 license by bsd4

* add attachments with save and send commands (#284)

* set up tpl save and send commands

* improve msg save and send handlers

* add vim msg#add_attachment fn

* improve vim logs

* update changelog

* add attachment keybind vim doc

* reverse range order fetch envelopes (#276)

* bump version v0.5.4
2022-02-05 00:29:57 +01:00
Clément DOUIN
c5ed252f33
bump version v0.5.3 2022-02-03 23:34:15 +01:00
Clément DOUIN
9e320135ec
prepare cargo publishing 2022-02-03 15:54:57 +01:00
Clément DOUIN
8cdeba62a1
release v0.5.2 (#282)
* doc: fix blur in list msg screenshots (#181)

* fix a typo in mbox arg (#245)

`targetted` to `targeted` 👌🏻

* make inbox, sent and drafts folder customizable (#246)

* mbox: make inbox, sent and drafts folder customizable

* msg: update send handler parameters order

* vim: fix extracting message ids from list (#247)

The current method doesn't work because the list uses a fancy line
character (`│`) as the separator, not a regular pipe character (`|`).
Matching for the first number in the line instead solves the problem and
will continue to work regardless of what separator is used.

* add new line after printing strings (#251)

* init cargo workspace (#252)

* init cargo workspaces

* nix: fix assets path

* doc: update rtp vim plugin

* vim: add error message if loading vim plugin from vim/

* init sub crates (#253)

* init sub crates

* doc: update readme

* doc: improve main readme

* doc: add links, add missing crate task

* doc: update emojis

* update cargo lock

* implement contact completion with completefunc (#250)

This allows users to define a command for contact completion with
`g:himalaya_complete_contact_cmd` and trigger it with `<C-x><C-u>` when
writing an email.

* fix clippy lints (#255)

* revert cargo workspace feature

* fix nix run (#274)

* replace cargo2nix by naersk

* add rust-analyzer and rustfmt to nix build inputs

* remove wiki from git submodules, update changelog

* fix missing range when fetch fails, add more logs (#276)

* add missing fix in changelog

* remove blank lines and spaces from plain parts (#280)

* fix watch command (#271)

* remove also tabs from text parts (#280)

* pin native-tls minor version (#278)

* improve msg sanitization (#280)

* fix mbox vim plugin telescope preview (#249)

* bump version v0.5.2

* update changelog

Co-authored-by: Austin Traver <austintraver@gmail.com>
Co-authored-by: Jason Cox <dev@jasoncarloscox.com>
Co-authored-by: Gökmen Görgen <gkmngrgn@gmail.com>
Co-authored-by: Ethiraric <ethiraric@gmail.com>
2022-02-02 02:21:35 +01:00
Clément DOUIN
f9775ae8af
doc: update project desc, bump version v0.5.1 2021-10-24 23:41:12 +02:00
Clément DOUIN
192445d7e4
make use of termcolor crate to disable colors (#236)
* table: replace custom color by termcolor

* table: deactivate colors if not tty

* table: rename printable to print, add more comments

* table: make use of writters, fix tests

* doc: update changelog

* doc: add page to wiki
2021-10-24 00:17:12 +02:00
Clément DOUIN
d21778c35e
improve text parts (#221) 2021-10-11 23:04:33 +02:00
Clément DOUIN
767eee95f5
release v0.5.0 2021-10-11 00:06:46 +02:00
Clément DOUIN
b7d068c729
improve folder struct + msg management (#217)
* make imap list and search return msg instead of fetch

* move imap logouts to main fn

* improve list command

* improve search command

* improve flags command

* improve template reply

* improve tpl forward command

* refactor tpl and msg reply/forward

* refactor copy, move and write commands

* refactor attachment command

* fix attachment part of copy and move commands

* fix send, save, read and mbox

* put back notify and watch commands

* fix msg encoding

* refactor edit choices, clean dead code

* fix attachment for write, reply and forward commands

* refactor config mod struct

* refactor project folder struct

* fix vim plugin (#215)
2021-10-10 22:58:57 +02:00
Paolo Barbolini
8f4718c057
Remove unused lettre_email crate (#209) 2021-09-29 22:32:59 +02:00
Clément DOUIN
c619f06206
replace error-chain by anyhow (#152) 2021-09-13 11:52:20 +02:00
TornaxO7
0e68801a35
refactor msg model (#173)
* Adding Mail structure

Adding a main structure which can be used for *everything* which has to do with
a mail:
    - Writing a new mail
    - Fetching the information of a mail

* Write mails

User can write mails now

* Writing mail

When mail is converted to a sendable message, it'll print out a nice little
error message what to do and which field is missing a value.

* Mail

List subcommand works with new struct now.

* Forwarding

Started implementation for forwarding message

* Breaking Commit

This is just a "backup" commit

* First finished

Himalaya can compile successfully now.

* Removed uneccessary files

- Moved everything from msg/mail to msg/model
- Removed uneccessary files

* Renaming

Renamed all "Mail" and "Mails" struct to "Msg" and "Msgs".

* Cleaning

Removed an CLI-Subcommand which can't be used anymore

* Flags

Fixed flags to vector and added the template subcommand back

* Changes to Flags

Changed the datatype from Vec<Flag<'static>> to HashSet<Flag<'static>>, because
each Message/Mail can include only one flag-type, so why not a HashSet for this
job?

* Cargo.toml changes

Fixed the lettre-dependencie which points to the pull request with the given
serde implementation for ContentType (needed for Attachments).

* Fix Template bug and removed unnecessary files.

- Removed the msg/flag/flag.rs file since we can use the imap::types::Flag
  implementation now
- `himalaya template new` printed the template two times. This should be fixed
  now

* Template command

Fixed formatting when printing out template

* Sending Mail

Fixed bug that user can't send a mail

* Msg

Moved the body from the attachment-vector out to an external attribute of the
struct.

* Msg listing and changed Msg::from to Msg::try_from

- Fixed bug that listing didn't showed up addresses in the `From:` field for
  example
- Made each `from` trait function to `try_from` for better error-handling

* Tests

- Fixed tests in `tests/imap_conn.rs`

* Cargo.toml changes, Bug fixes, Documentation

- Updated mailparse to 0.13.4
- Added new "new" function to Account
- Cleaned up some functions (removed some)
- Added Eq and PartialEq derives for msg
- Bugfix:
    It couldn't get the body of some mails, because they were inside a
    multipart/alternative part. Now the mail is iterating through all subparts
    and picks up the firs text/plain "attachment" and uses it as the body.

* Changed Msg attributes viewability

- Made the "main attributes" of the Msg struct public
- Removed to getter functions

* Big envelope changes

- Added documentation
- Removed the getter functions, beacuse the attributes are public

* Documentation and Cleanup

- Removed the `new` constructor of the envelope, since it's actually the same as
  Envelope::default()
- Addded tests and Documentation to Attachments.rs

* Documentation and Tests

- Added docuemntation for msg/body.rs
- Fixed some syntax errors in the doc strings

* General msg

- Added `get_raw` function and `raw` field for the `Msg` struct.
- Fixed raw output of msg
- Started documentation + tests for the Msg struct

* Changes to Msg

- Added Clone derive
- Added documentation for change_to_reply method
- Added tests to change_to_reply method

* Msg tests and Account changes

- Changed `Account::new()` function
- Added more documentation to Msg struct
- Added more tests to Msg struct

* Removed an unknown file

Removed src/.rust_info.json (don't know where it came)

* Msgs finished(?)

Added final documentation to the Msg struct.

* ImapConnector Fix

Fixed the bug, when trying to move a msg, the envelope wasn't applied to the
fetch. Fixed that in the `get_msg` method.

* Msg

- Bug fixes:
    - Adding Message ID and Subject in the to_sendable_msg function

- Removed an println statement for debugging
- Added more error messages

* Cargo.toml

Changed order and added some comments to the dependencies.

* Msg

Removed an unnecessary documentation part.

* Fixed documentation

* Removing non-debugflags for dev profile

Removing debug=false for the dev profile since it was just for me.

* Cleanup

Removed the comment blocks and reduced some comments

* Cleanup

Reformatted some stuff

* Cleanup

Replaced the word "mail" with "msg".

* Formatting

Fixed formatting in src/flag/model.rs file

* Little fix

* Changes and tests

- New "feature":
    If you reply to a reply, the subject won't look like this for example:

        Re: Re: Re: Re: Re: Re: The subject

- Fixed tests. All tests pass now (run `cargo test`)

* Idea(?)

Renamed all <module>_matches/_subcmds to general "matches" and "subcmds()".
All modules have the same: "matches()" and "subcmds()"

* Little fix

Changed the name from "imap_conn" to "conn" by mistake. Fixed that

* Bug fix

When sending a message, himalaya will generate a UUID on its own if there's no
message-id for the message yet.

* Bug fix

Removed angle brackets, since they are added through the lettre library.

* Bugfix

Removed an unnecessary (old) line.

* Cleanup

Removed the last comment blocks.

* Fixed lettre dependencie

* Bugfixes and Error handling

- When calling the msg_interaction function, the user can edit the msg first,
  before the prompt comes up
- Also added a error output, if the msg couldn't be converted into a sendable
  message.

* Error handling

Improved output of error

* Bug fixes, Error Handling

- Improved error handling for the string parsing
- Added attempt to fix the bug that a whitespace is added in the end of an
  address

* Trimming

Added trims to avoid invalid white spaces in the addresses.

* Fixing whitespace bug

All addresses are gonna trimmed before adding to a header now

* Adding encoding, Changed dependencie

- Added encoding for the body part
- Changed the lettre dependencie of lettre to TornaxO7's fork of lettre, because
  the "ContentTypeEncoding" struct needs the "Eq", "Serialize" and "Deserialize"
  derives.

* Improved Error handling

Added a warning, if a message included an unknown attachment.

* Fixed tests

Fixed the documentation for passing the tests.

* Doc change

* Bugfis: When replying, signature is added now as well

* Bugfix: Forwarding Message

When forwarding a message, himalaya, put the signature in the end of the
mail/msg. Now it's added above the '-------Forwarded Message---------' line.

* Readjusted tests and new method

- Changed the way to create a new account:
    - Account::new => Sets signautre to "None"
    - Account::new_with_signature => Sets signature to the given argument

    This makes it more flexible to create specifique accounts for tests for
    example.

- Fixed the tests so all are passing now

* improve sig and sig delim concat process

* add signature delim struct comment

* fix signatures + tests

* fix body and signature new lines

* Adding [serde(rename_all = "camelCase")] to structs

* fix reply indentation and signature new lines

* add default rustfmt.toml

* apply fmt on all the project

* fix msg tests

* Makeing Ctx struct independent

- The Ctx struct doesn't include references anymore. This makes it easier to
    create new Ctx instances by doing the following:

        Ctx {
            <attribute>: <value>,
            .. Ctx::default()
        }

    This helps especially for writing tests.

Also the attributes of the Ctx struct in the main-entry function aren't used
anymore after creating the Ctx struct. So there's no need to have only
references in the Ctx struct.

* Fixing JSON output

- JSON of message includes `hasAttachment` key now
- JSON output shows both body types: Text and Html
- Changed `Body` struct so it can store html and text now.

* Tests

Updated tests with the latest Body implementation

* Fixes

- Removed suspicious println macro in serializer of msg... *cough cough*
- Fixed output in the "read" command
- othe small fixes

* Formatting

Formatted all files

* Msg

- Adding 'get_full_message' method which prints out all information of the
  message in a string

* New Msg-Struct

Adding MsgSerialized, a struct, which represents the "correct" serialized
version of a message because it includes another attribute: `has_attachment`.

* Cleanup

Removed the manual serialize implementation of `Msg` and added a little more
info about the MsgSerialized.

* Test fixes

Adjusted all tests so all are passing now.

* Little changes

- Used a better condition for checking if the message includes attachments or
  not
- format fixes

* Fixing tests and Docs

- Provided more docs
- Refactored tests and added more tests

* Expanding specials

Added more "special characters" which will add some quotes around the name if it
includes at least one of them.

* Fixing test

Improved the detection if the mail-name includes a special character or not.

* Variable renaming

Renamed a variable for better readability.

* Envelope renaming

* Small change

Renamed the variable of the `TryFrom` implementation for the
imap_proto::Envelope.

* Last stuff

- Making the attributes of mboxes independent. We can store them now as well!
- Added more docs
- Added type-safety for flags
- Expanded flags a bit
- Added more tests
- Added a short summary of the file-structure in the beginning of the doc.

* Help command fix

Fixing help command description.

* Small doc change

* Doc fix

Fixing the link to the mbox delimiter.

* Fixing typo

* Doc fix

* Added docs for Output struct

* Fixing tests

Fixing a little test issue

* Formatting changes + doc change

- Removed bold + capital words for logout-doc
- Run format on each *.rs file

* Fixing tests

- Testing the return value of the flags struct as a string doesn't really work
  since it's a HashSet => Converted it into a Vec (in the test) to set the order
  as well.
- Fixed imap test by reverting the changes in the test.

* Error handling

Changed error output when creating an Imap-Connection. Should help debugging :)

* Formatting fixes and refactoring

- Using `trim_end_matches` instead of "pop"s now.
- Executed `cargo fmt`

* Trying to fix test workflow

* Fixes

Updated dependencies with `cargo update` and let cargo point to master branch of
TornaxO7's lettre-fork because this should probably fix the issue with the
nix-build.

* Test fix

Fixing the workflow.

* Workflow fix

Removing semicolon

* Starting workflow

Added a new line to be able to push.

* Workflow

Reverting the workflow command.

* Workflows

Reverting workflow to master workflow.

* let actions/checkout@v2 run first

* Forwarded message's signature misplaced

Changes the order of the signature for forwarded messages.

* Output change

Changed the output if an error occurs.

* Fixing output for template-building

* Template shows raw data with JSON format #23

When printing the message in json, the raw message is printed out as a string
now.

* the_sender_is_not_displayed_properly_in_table_and_json #21

- When displaying the table, we'll look first, if a name exists, if yes => use
  it otherwise use the email address.

- Added the rfc2047_decoder for parsing addresses

* Formatting

Run 'cargo fmt'

Co-authored-by: Clément DOUIN <soywod@users.noreply.github.com>
Co-authored-by: Erik <erik1000@protonmail.com>
2021-09-11 00:35:22 +02:00
Clément DOUIN
97054d3133
expand tilde in config file (#102) 2021-08-05 23:18:28 +02:00
Clément DOUIN
2acd5d71d3
add basic support of xdg-email (#162) 2021-08-04 21:42:59 +02:00
Clément DOUIN
7c88896fcc
release v0.4.0 2021-06-03 16:15:46 +02:00
Clément DOUIN
28448310c7
refactor stdin for send and tpl cmds 2021-05-31 14:19:55 +02:00
Paolo Barbolini
c9e1609ea9
update lettre to v0.10.0-rc.1 (#150)
$ cargo update -p lettre --aggressive
    Updating crates.io index
    Updating aho-corasick v0.7.15 -> v0.7.18
    Removing bytes v1.0.1
    Updating cc v1.0.66 -> v1.0.67
      Adding fastrand v1.4.1
    Removing getrandom v0.1.15
    Removing http v0.2.3
    Removing httparse v1.3.5
    Updating httpdate v0.3.2 -> v1.0.0
    Removing hyperx v1.3.0
    Updating idna v0.2.0 -> v0.2.3
    Removing language-tags v0.2.2
    Updating lettre v0.10.0-beta.3 -> v0.10.0-rc.1
    Updating libc v0.2.88 -> v0.2.94
    Updating lock_api v0.4.3 -> v0.4.4
    Updating memchr v2.3.4 -> v2.4.0
    Updating native-tls v0.2.6 -> v0.2.7
    Updating once_cell v1.5.2 -> v1.7.2
    Updating openssl v0.10.32 -> v0.10.34
    Updating openssl-probe v0.1.2 -> v0.1.4
    Updating openssl-sys v0.9.60 -> v0.9.63
    Updating parking_lot_core v0.8.2 -> v0.8.3
    Removing percent-encoding v2.1.0
    Updating quoted_printable v0.4.2 -> v0.4.3
    Removing rand v0.7.3
    Removing rand_chacha v0.2.2
    Removing rand_core v0.5.1
    Removing rand_hc v0.2.0
      Adding redox_syscall v0.2.8
    Updating regex v1.4.2 -> v1.5.4
    Updating regex-syntax v0.6.21 -> v0.6.25
    Updating security-framework v2.0.0 -> v2.2.0
    Updating security-framework-sys v2.0.0 -> v2.2.0
    Updating smallvec v1.6.0 -> v1.6.1
    Updating tempfile v3.1.0 -> v3.2.0
    Removing thread_local v1.0.1
    Updating tinyvec v1.1.0 -> v1.2.0
    Removing unicase v2.6.0
    Updating unicode-bidi v0.3.4 -> v0.3.5
    Updating unicode-normalization v0.1.16 -> v0.1.17
    Updating vcpkg v0.2.11 -> v0.2.12
    Updating version_check v0.9.2 -> v0.9.3
    Removing wasi v0.9.0+wasi-snapshot-preview1
2021-05-14 18:49:31 +02:00
Clément DOUIN
36d3cd6347
bump imap-rust v3.0.0-alpha.3 2021-05-09 21:40:37 +02:00
Clément DOUIN
f6b2fa76b7
release v0.3.2 2021-05-08 22:34:00 +02:00
Clément DOUIN
9ea84be081
release v0.3.1 2021-05-04 00:23:37 +02:00
Clément DOUIN
65d0bdc4f0
release v0.3.0 2021-04-28 01:13:34 +02:00
Clément DOUIN
fa2f93185f
improve logging, replace log-level by RUST_LOG 2021-04-28 00:47:24 +02:00
Clément DOUIN
cc1311c168
release v0.2.7 2021-04-24 23:49:42 +02:00
Clément DOUIN
15c635eb1d
use env_logger for plain output fmt (#126) 2021-04-24 22:54:01 +02:00
Clément DOUIN
9b303f144e
release v0.2.6 2021-04-17 00:09:06 +02:00
Clément DOUIN
e8ae4b025f
release v0.2.5 2021-04-12 00:21:08 +02:00
Harsh Shandilya
e260823581
bump version in Cargo.lock (#82)
This needs to match Cargo.toml to prevent --frozen builds from failing

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-04-09 09:03:20 +02:00
Clément DOUIN
f26051685c
refactor output system (#74) 2021-04-09 00:15:16 +02:00
Clément DOUIN
402f9ef4aa
release v0.2.3 2021-04-08 14:29:04 +02:00
Clément DOUIN
994141f852
fix unicode issue (#71) 2021-04-08 12:59:44 +02:00
Alex Wennerberg
14d8a3fecd
remove unused clap depdenencies (#67)
* Remove unused clap depdenencies

* Add color to clap enabled features
2021-04-07 08:05:36 +02:00
Clément DOUIN
0d763a1ab8
release v0.2.2 2021-04-04 17:46:02 +02:00
Clément DOUIN
2850ae01fd
implement add attachement to msg feature 2021-04-03 22:30:57 +02:00
Clément DOUIN
1e5cce0205
improve errors management 2021-03-12 23:01:01 +01:00
Clément DOUIN
781c4a2722
rename idle notify cmd 2021-03-12 00:07:01 +01:00
Clément DOUIN
b6cbfc26be
release v0.2.0 2021-03-10 23:08:31 +01:00
Clément DOUIN
10c523fd2c
improve read and attachments commands 2021-03-10 16:46:47 +01:00
Clément DOUIN
5e948b5cc1
improve list msgs perf, remove flags column 2021-01-18 12:10:16 +01:00
Clément DOUIN
84df58cf81
add json serializer lib (prepare #18) 2021-01-17 10:03:19 +01:00
Clément DOUIN
60af11bd47
make table responsive 2021-01-16 19:46:55 +01:00
Clément DOUIN
2709faf30a
improve errors management 2021-01-12 23:49:44 +01:00
Clément DOUIN
125c4e2b0e
set up smtp #4 + write email feature #8 2021-01-03 23:19:31 +01:00
Clément DOUIN
0a48df0567
add text and html previews 2021-01-03 17:28:42 +01:00
Clément DOUIN
d8116c6103
set up cli arg parser #15 2021-01-03 00:45:43 +01:00
Clément DOUIN
2970828db9
add new emails listing feature #6 2021-01-02 19:21:30 +01:00
Clément DOUIN
2a567040ac
set up imap connection 2020-12-25 22:39:16 +01:00
Clément DOUIN
f9e75ee3b4
deserialize config from toml #1 #2 2020-12-25 00:31:38 +01:00
Clément DOUIN
87f1d3171e
init project, init toml config parser 2020-12-24 00:55:57 +01:00