extract-msg 0.48.5__tar.gz → 0.48.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {extract_msg-0.48.5 → extract_msg-0.48.6}/CHANGELOG.md +3 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/PKG-INFO +3 -3
- {extract_msg-0.48.5 → extract_msg-0.48.6}/README.rst +2 -2
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/__init__.py +2 -2
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/open_msg.py +10 -3
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/PKG-INFO +3 -3
- {extract_msg-0.48.5 → extract_msg-0.48.6}/LICENSE.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/MANIFEST.in +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/__main__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/_rtf/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/_rtf/create_doc.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/_rtf/inject_rtf.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/_rtf/token.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/_rtf/tokenize_rtf.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/attachment.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/attachment_base.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/broken_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/custom_handler.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/lnk_obj_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/outlook_image_dib.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/emb_msg_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/signed_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/unsupported_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/web_att.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/constants/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/constants/ps.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/constants/re.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/constants/st.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/data/logging-config/logging-nt.json +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/data/logging-config/logging-posix.json +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_mac_ce.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_mac_cyrillic.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_mac_greek.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_mac_iceland.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_mac_turkish.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_win874_dec.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/_dt/_win950_dec.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/encoding/utils.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/enums.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/exceptions.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/appointment.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/calendar.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/calendar_base.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/contact.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/journal.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_cancellation.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_exception.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_forward.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_related.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_request.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/meeting_response.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/message.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/message_base.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/message_signed.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/message_signed_base.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/msg.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/post.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/sticky_note.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/task.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/msg_classes/task_request.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/null_date.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/ole_writer.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/properties/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/properties/named.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/properties/prop.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/properties/properties_store.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/py.typed +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/recipient.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/__init__.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/_helpers.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/business_card.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/cfoas.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/contact_link_entry.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/dev_mode_a.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/dv_target_device.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/entry_id.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/misc_id.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/mon_stream.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/odt.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/ole_pres.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/ole_stream_struct.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/recurrence_pattern.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/report_tag.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/system_time.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/time_zone_definition.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/time_zone_struct.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/toc_entry.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/structures/tz_rule.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/utils.py +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/SOURCES.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/dependency_links.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/entry_points.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/requires.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg.egg-info/top_level.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/requirements.txt +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/setup.cfg +0 -0
- {extract_msg-0.48.5 → extract_msg-0.48.6}/setup.py +0 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
**v0.48.6**
|
|
2
|
+
* [[TeamMsgExtractor #417](https://github.com/TeamMsgExtractor/msg-extractor/issues/417)] Fixed issues with `openMsg` where some corrupted MSG files could end up throwing an uncaught exception and leaving the file handle open.
|
|
3
|
+
|
|
1
4
|
**v0.48.5**
|
|
2
5
|
* [[TeamMsgExtractor #414](https://github.com/TeamMsgExtractor/msg-extractor/issues/414)] Fixed typo in `message_signed_base.py`.
|
|
3
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: extract_msg
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.6
|
|
4
4
|
Summary: Extracts emails and attachments saved in Microsoft Outlook's .msg files
|
|
5
5
|
Home-page: https://github.com/TeamMsgExtractor/msg-extractor
|
|
6
6
|
Download-URL: https://github.com/TeamMsgExtractor/msg-extractor/archives/master
|
|
@@ -278,8 +278,8 @@ your access to the newest major version of extract-msg.
|
|
|
278
278
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
279
279
|
:target: LICENSE.txt
|
|
280
280
|
|
|
281
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
282
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
281
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.6-blue.svg
|
|
282
|
+
:target: https://pypi.org/project/extract-msg/0.48.6/
|
|
283
283
|
|
|
284
284
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
285
285
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
@@ -260,8 +260,8 @@ your access to the newest major version of extract-msg.
|
|
|
260
260
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
261
261
|
:target: LICENSE.txt
|
|
262
262
|
|
|
263
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
264
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
263
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.6-blue.svg
|
|
264
|
+
:target: https://pypi.org/project/extract-msg/0.48.6/
|
|
265
265
|
|
|
266
266
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
267
267
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
@@ -27,8 +27,8 @@ https://github.com/TeamMsgExtractor/msg-extractor
|
|
|
27
27
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
28
28
|
|
|
29
29
|
__author__ = 'Destiny Peterson & Matthew Walker'
|
|
30
|
-
__date__ = '2024-
|
|
31
|
-
__version__ = '0.48.
|
|
30
|
+
__date__ = '2024-07-06'
|
|
31
|
+
__version__ = '0.48.6'
|
|
32
32
|
|
|
33
33
|
__all__ = [
|
|
34
34
|
# Modules:
|
|
@@ -89,6 +89,14 @@ def openMsg(path, **kwargs) -> MSGFile:
|
|
|
89
89
|
|
|
90
90
|
msg = MSGFile(path, **kwargs)
|
|
91
91
|
|
|
92
|
+
# Protect against corrupt MSG files.
|
|
93
|
+
try:
|
|
94
|
+
ct = msg.classType
|
|
95
|
+
except:
|
|
96
|
+
# All exceptions here mean we NEED to close the handle.
|
|
97
|
+
msg.close()
|
|
98
|
+
raise
|
|
99
|
+
|
|
92
100
|
# Restore the option in the kwargs so we don't have to worry about it.
|
|
93
101
|
kwargs['delayAttachments'] = delayAttachments
|
|
94
102
|
|
|
@@ -99,14 +107,14 @@ def openMsg(path, **kwargs) -> MSGFile:
|
|
|
99
107
|
# other file types (like doc, ppt, etc.) might open but not return a class
|
|
100
108
|
# type. If the stream is not found, classType returns None, which has no
|
|
101
109
|
# lower function. So let's make sure we got a good return first.
|
|
102
|
-
if not
|
|
110
|
+
if not cy:
|
|
103
111
|
if kwargs.get('strict', True):
|
|
104
112
|
raise InvalidFileFormatError('File was confirmed to be an olefile, but was not an MSG file.')
|
|
105
113
|
else:
|
|
106
114
|
# If strict mode is off, we'll just return an MSGFile anyways.
|
|
107
115
|
logger.critical('Received file that was an olefile but was not an MSG file. Returning MSGFile anyways because strict mode is off.')
|
|
108
116
|
return msg
|
|
109
|
-
classType =
|
|
117
|
+
classType = ct.lower()
|
|
110
118
|
# Put the message class first as it is most common.
|
|
111
119
|
if classType.startswith('ipm.note') or classType.startswith('report'):
|
|
112
120
|
msg.close()
|
|
@@ -159,7 +167,6 @@ def openMsg(path, **kwargs) -> MSGFile:
|
|
|
159
167
|
return msg
|
|
160
168
|
elif kwargs.get('strict', True):
|
|
161
169
|
# Because we are closing it, we need to store it in a variable first.
|
|
162
|
-
ct = msg.classType
|
|
163
170
|
msg.close()
|
|
164
171
|
# Now we need to figure out exactly what we are going to be reporting to
|
|
165
172
|
# the user.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: extract-msg
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.6
|
|
4
4
|
Summary: Extracts emails and attachments saved in Microsoft Outlook's .msg files
|
|
5
5
|
Home-page: https://github.com/TeamMsgExtractor/msg-extractor
|
|
6
6
|
Download-URL: https://github.com/TeamMsgExtractor/msg-extractor/archives/master
|
|
@@ -278,8 +278,8 @@ your access to the newest major version of extract-msg.
|
|
|
278
278
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
279
279
|
:target: LICENSE.txt
|
|
280
280
|
|
|
281
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
282
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
281
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.6-blue.svg
|
|
282
|
+
:target: https://pypi.org/project/extract-msg/0.48.6/
|
|
283
283
|
|
|
284
284
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
285
285
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/attachments/custom_att_handler/lnk_obj_att.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.5 → extract_msg-0.48.6}/extract_msg/data/logging-config/logging-posix.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|