Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-05-23 | Test UTF-7 in body | Henri Sivonen | |
2019-05-23 | Test UTF-7 in headers | Henri Sivonen | |
2019-05-23 | Test ISO-2022-JP in headers | Henri Sivonen | |
2019-05-23 | Use the charset crate instead of the encoding crate | Henri Sivonen | |
Adds support for UTF-7 and drops support for HZ. | |||
2019-02-10 | Fix panic when encountering param content with new line | Lewis Diamond | |
2018-09-12 | Implement MailHeaderMap for [MailHeader] instead of Vec<MailHeader> | Jos van den Oever | |
2018-09-12 | key.len() > 0 -> !key.is_empty() | Jos van den Oever | |
clippy::len_zero | |||
2018-09-07 | Prefer map_err(|e| e.into()) over explicit error | Thomas Hurst | |
2018-09-07 | Replace try_none! with ? | Thomas Hurst | |
2018-09-07 | Tidy get_body_raw() | Thomas Hurst | |
This saves an allocation of the empty string in the no-Content-Transfer-Encoding case. | |||
2018-09-07 | Tidy get_body_raw() with is_ascii_whitespace() | Thomas Hurst | |
Semantics aren't *identical*, since this adds vertical tab to the filter. | |||
2018-09-07 | Tidy parse_param_content | Thomas Hurst | |
2018-09-07 | Convert try! to ? | Thomas Hurst | |
2018-09-07 | Tidy is_boundary() | Thomas Hurst | |
2018-09-07 | Tidy MailHeader::get_key | Thomas Hurst | |
2018-09-05 | Use i64::from(x) over x as i64 | Thomas Hurst | |
clippy:cast_lossless | |||
2018-09-05 | Use if let Ok() over single-armed match { .. } | Thomas Hurst | |
clippy:single_match | |||
2018-09-05 | Use while let Some(..) over loop { match { .. }} | Thomas Hurst | |
This looks like it should be a map().collect(), but do the smaller change first. clippy:while_let_on_iterator | |||
2018-09-05 | map(|x| Some(x)) -> map(Some) | Thomas Hurst | |
clippy:redundant_closure | |||
2018-09-05 | Use foo[] instead of .get().unwrap() | Thomas Hurst | |
clippy:get_unwrap | |||
2018-09-05 | Use unwrap_or_else() and unwrap_or_default() | Thomas Hurst | |
This is particularly good for fallbacks which allocate, like String::new() and "bla".to_string(). len() is mostly to shut up clippy. clippy:or_fun_call | |||
2018-09-05 | Use Struct { foo } over Struct { foo: foo } | Thomas Hurst | |
clippy:redundant_field_names | |||
2018-09-05 | Use a char rather than a &str for single-char find() | Thomas Hurst | |
clippy:single_char_pattern | |||
2018-09-05 | Use foo += bar over foo = foo + bar | Thomas Hurst | |
clippy:assign_op_pattern | |||
2018-09-04 | Fix #26: Incorrect unwrap() guard in is_boundary() | Thomas Hurst | |
Guarding line.chars().nth(n) by enforcing n <= line.len() is incorrect, because len() operates in bytes, not Unicode characters. Drop the guard and make use of nth()'s Option to conditionally check the character if it's within bounds. Add a test to prevent regressions. | |||
2018-05-23 | Fix indentation | Kartikaya Gupta | |
2018-05-23 | parse_mail: Handle missing terminating boundaries in multipart emails. | Darius Jahandarie | |
Instead of erroring when there is no terminating boundary, assume the end of the part is the end of the email. | |||
2018-04-18 | MailHeader::get_value: do not add space if special char parsed | Romain Porte | |
2018-04-03 | Update quoted_printable and base64 dependencies | Kartikaya Gupta | |
2017-10-14 | Add missing function doc | Kartikaya Gupta | |
2017-10-14 | Don't expose the function to convert disposition type | Kartikaya Gupta | |
2017-10-14 | Update documentation and doc-tests for new content-disposition changes | Kartikaya Gupta | |
2017-10-12 | rustfmt | Young Wu | |
2017-10-12 | Store all params of Content-Type into BTreeMap<String, String> | Young Wu | |
2017-10-12 | Add Content-Disposition to mail | Young Wu | |
2016-12-26 | rustfmt | Kartikaya Gupta | |
2016-12-26 | add `get_body_raw` | Wu Young | |
2016-12-23 | add name field to ParsedContentType | Wu Young | |
2016-12-04 | Followup to 9f8013c2 (fix for issue #7) - deal with empty messages | Kartikaya Gupta | |
2016-12-04 | Fix for issue #7 - deal with lack of headers | Kartikaya Gupta | |
2016-12-04 | Less allocation by using case insensitive string comparison | Jos van den Oever | |
2016-12-04 | Rename test and check for body as well | Kartikaya Gupta | |
2016-12-03 | Fix panic when the mail body is missing | Jos van den Oever | |
2016-11-11 | Drop the redundant get_*_ci methods from MailHeaderMap | Bruce Guenter | |
2016-11-11 | Make MailHeaderMap perform case-insensitive searches | Bruce Guenter | |
The trait MailHeaderMap has two methods for searching headers, normal and case-insensitive. This documentation says: > According to the spec the mail headers are supposed to be > case-sensitive, but in real-world scenarios that's not always the > case. Actually, the spec says nothing that headers supposed to case-sensitive, and historical precedent is to be case-insensitive. Certainly, all the mail processing software I am familiar with (Thunderbird, qmail, ezmlm, and mutt) treat headers as case insensitive. RFC 822 section 3.4.7 says: > When matching any other syntactic unit, case is to be ignored. For > example, the field-names "From", "FROM", "from", and even "FroM" are > semantically equal and should all be treated identically. While RFC 2822 did drop that section (and RFC 5322 didn't restore it), others interpret other parts to indicate case insensitivity. https://stackoverflow.com/a/6143644 > RFC 5322 does actually specify this, but it is very indirect. https://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Headers.html > Upper and lower case are equivalent in field names. https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.email.ExtractEmailHeaders/index.html > NOTE the header key is case insensitive This change makes all header searches case insensitive. | |||
2016-10-02 | rustfmt | Kartikaya Gupta | |
2016-10-02 | Update main examples to include a dateparse usage | Kartikaya Gupta | |
2016-10-02 | Add dateparse documentation | Kartikaya Gupta | |
2016-10-02 | Add list of textual timezones from RFC 822 | Kartikaya Gupta | |
2016-10-02 | Expose the dateparse module from mailparse | Kartikaya Gupta | |