Cards created with github-profile-summary-cards.
tornaxo7 / himalaya Goto Github PK
View Code? Open in Web Editor NEWThis project forked from soywod/himalaya
๐ซ CLI email client
License: BSD 3-Clause "New" or "Revised" License
This project forked from soywod/himalaya
๐ซ CLI email client
License: BSD 3-Clause "New" or "Revised" License
Cards created with github-profile-summary-cards.
I'm a bit suspicious about the name "Envelope". Theoretically, the envelope is the container of the message. The struct looks more like headers for me. I checked what you put in the doc (about the Envelope of the crate imap_proto), and it matches well indeed. But imap_proto and himalaya are not on the same level: imap_proto is really low level, whereas himalaya is at the top level. The meaning of Envelope is not really the same. The 2 options I see so far is:
Feel free to argue of course, maybe I miss some information.
I do not think the signature should be there. Also (it's not fully related to what you propose, it was already the case before), I'm half satisfied with how the signature is processed. It's a bit overwhelming. We never know when to append \n
, how many of them etc. I thought about introducing a function like append_signature
that takes in parameter a mutable body and appends the signature if exists. Feel free to propose btw.
I see that you put the signature before the quote in a forward message, what are your motivations? I think it should be after the quote instead. The default (and recommanded) option in Thunderbird is below the quote:
I may add more points in the future.
PS: don't think I'm bashing your work, in fact you did quite well (like the tests based on RFC examples, the try_from
etc). I just list here all points that I partially agree with ๐
It looks like that error_chain is deprecated now! So I think that we should switch to another error handling-crate. I'd suggest thiserror. We could also combine it with anyhow. What do you think? @soywod
Trying to find a solution for this case for example. Also thinking about a test
trait... or not...
himalaya --output json template reply/forward
shows the raw
buffer data (it should be discarded).
[EDIT]: in fact it should not be discarded, but it should show the raw message as string (not buffer). This way we align with the existing behaviour (it is useful for UIs).
@soywod When I started to rewatch the code I found the following:
A robust type-safety change like here wouldn't be bad: Changing the parameter type of flags
to our struct Flags
Do you agree to this?
I also found an issue when I tried to add a flag. In general I'd like to write some tests for the subcommands and so on first.
I'll wait for your respond first before I keep implementing (I've already started to adjust the Flags
struct).
himalaya --output plain template new/reply/forward
does not show any template (blank line).
We already discussed this (#9), and I really think the signature should be below the forwarded message (not above). Later we could add an option for this, but for now I would prefer to stay "standard".
hasAttachment
)text/html
version of the mail if no text/plain
is found.From
header contains only the email address (it should contains the name if available My Name <[email protected]>
Subject
header is missing[] The raw
should be excluded from the JSON export (#[serde(skip_serializing)]
)
[] The JSON export should be in camelCase
, not in snake_case
(#[serde(rename_all = "camelCase")]
)
Sender Name <[email protected]>
. Only the name should be displayed, and if no name exists then the email address.rfc2047_decoder
lib)For example, let's take =?UTF-8?Q?Userame?= <[email protected]>
. Himalaya's master branch shows Username
, but your branch shows =?UTF-8?Q?Userame?= <[email protected]>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.