- Pin
mail-parser
version at3.15.0
due to a parsing regression in4.0.0
- Fix IMAP namespace handling (PR #11 closes issue #10)
- Accept
plain_message=None
when creating emails
- Fix missing
body_urls
list when an email does not contain an HTML body
- Email parsing improvements
- Parse out email addresses in the
Delivered-To
header - Rename
reply_to
key toreply-to
- Replaces formatting provided by
mailparser
with parsed out email addresses that match the rest of the output
- Replaces formatting provided by
- Parse out email addresses in the
- Normalize the case of a header name when testing header values.
- Ignore all
dmarc
Authentication-Results
if multipledmarc
results are found
- Strip leading and trailing spaces from
DKIM-Signature
headerh=
list items
- Fix parsing of
Authentication-Results
andDKIM-Signature
headers when Windows line breaks (\r\n
) are used
- Fix header and body separation when Windows line breaks (
\r\n
) are used
- Fix parsing of email addresses in message
From
headers with encoded display names.
- Fix regression causing noisy
mailparser
log messages to reappear - Rename
urls
list tobody_urls
- Add
urls
list to parsedutils.parse_email()
results
- In
utils.from_trusted_domain()
, ifuse_authentication_results_original
isTrue
, but theAuthentication-Results-Original
header does not exist, fall back to checking theAuthentication-Results
header
- Add
automatic_reply
flag to parsed emails
- Fix crash when parsing some
DKIM-Signature
headers - Fix
from_trusted_domain()
DMARC check - Don't convert plain text email bodies to markdown
- Always include
body_markdown
in parsed results - Decode utf-8 encoded
Subject
andThread-Topic
headers inheaders_str
- Silence noisy
mailparser
log output
- Remove some documentation from
README.md
, so the PyPI listing won't have outdated info - Add
Issues
andChangelog
URLs to the PyPI listing
- Add warnings about
msgconvert
not being suitable for forensics
- Fix multiple bugs in
mailsuite.utils.from_trusted_domain()
- By default,
mailsuite.utils.from_trusted_domain()
will now returnTrue
if the SLD or FQDN of an authenticated domain is intrusted_domains
- Convert documentation to markdown
- Convert build backend from
setuptools
tohatch
- Raise
ValueError
when trying to parse something that isn't an email
- Fix error when calling
utils.from_trusted_domain()
- Fix outdated package version number
- Accept a file path as possible input for the
data
argument inutils.parse_email()
- Parse
Authentication-Results
andDKIM-Signature
headers - Add
utils.from_trusted_domain()
- Parsed header keys and values are now stored at the root of the parsed email dictionary, instead of in a
headers
dictionary - Add
raw_headers
to parsed email output
- Fix
publicsuffix2
warning
- Properly hash binary attachments
- Fix
headers_string
value in parsed emails
- Use
STARTTLS
inIMAPClient
before login if the server supports it (PR #2) - Properly handle cases where the IMAP separator is
None
(PR #4) - Retry operations when disconnected from the server (PR #5)
- Add support for certificate authentication in IMAP (PR # 7)
- Changes to email parsing
- Every header is now included as its own dictionary entry
- Remove redundant
headers
subdictionary - Parse and normalize
Authentication-Results
,Authentication-Results-Original
. amdDKIM-Signature
headers headers_str
now contains the full headers with indentations removedraw_headers
includes the full headers without any modifications- Add
base_domain
entry toparse_email_address()
output
- Remove
six
requirement - Set required
mail-parser
version to>=1.14.0
- Set required
dnspython
version to>=2.0.0
- Remove copies of email headers from the root of the returned dictionary (still available under
headers
- Store the HTML body in body in
body
, or the text body if an HTML body does not exist - Store all body parts as a string in
raw_body
- Only run
html2text
on HTML bodies - Disable wrapping on markdown to make searching strings with YARA or other tools easier
- Improve
get_filename_safe_string()
- Fix version numbering
-
Pin some dependency versions to avoid conflicts
six==1.13.0
mail-parser==3.11.0
- Require
mail-parser>=3.11.0
ro avoid dependency problems
- Add
body_markdown
toparse_email()
results
- Add
headers_string
to parsed output
- Do not remove leading
/
from folder names
- Set a configurable default IMAP timeout of 30 seconds
- Set a configurable maximum of 4 IMAP timeout retry attempts
- Fix IMAP hierarchy separator parsing
- Add support for sending emails with custom message headers
- Add
parsedmarc.utils.create_email
function
- Fix error when sending email with no attachments
- Correct
mailsuite.__version__
- Always use
/
as the folder hierarchy separator, and convert to the server's hierarchy separator in the background - Always remove folder name characters that conflict with the server's hierarchy separators
- Prepend the namespace to the folder path when required
- Initial release