Solución:
Esto funciona para mi:
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(r"C:test_msg.msg")
print msg.SenderName
print msg.SenderEmailAddress
print msg.SentOn
print msg.To
print msg.CC
print msg.BCC
print msg.Subject
print msg.Body
count_attachments = msg.Attachments.Count
if count_attachments > 0:
for item in range(count_attachments):
print msg.Attachments.Item(item + 1).Filename
del outlook, msg
Consulte la siguiente publicación con respecto a los métodos para acceder a las direcciones de correo electrónico y no solo a los nombres (por ejemplo, “John Doe”) de las propiedades Para, CC y CCO. Ingrese la descripción del enlace aquí.
Logré extraer los campos relevantes de los archivos de MS Outlook (.msg) usando msg-extractor
Utilidad de Matt Walker.
Requisitos previos
pip install extract-msg
Tenga en cuenta que puede requerir la instalación de módulos adicionales, en mi caso, fue necesario instalar imapclient:
pip install imapclient
Uso
import extract_msg
f = r'MS_Outlook_file.msg' # Replace with yours
msg = extract_msg.Message(f)
msg_sender = msg.sender
msg_date = msg.date
msg_subj = msg.subject
msg_message = msg.body
print('Sender: {}'.format(msg_sender))
print('Sent On: {}'.format(msg_date))
print('Subject: {}'.format(msg_subj))
print('Body: {}'.format(msg_message))
Hay muchas otras ventajas en la utilidad MsgExtractor, para explorar, pero esto es bueno para empezar.
Nota
Tuve que comentar las líneas 3 a 8 dentro del archivo C: Anaconda3 Scripts ExtractMsg.py:
#"""
#ExtractMsg:
# Extracts emails and attachments saved in Microsoft Outlook's .msg files
#
#https://github.com/mattgwwalker/msg-extractor
#"""
El mensaje de error fue:
line 3
ExtractMsg:
^
SyntaxError: invalid syntax
Después de bloquear esas líneas, el mensaje de error desapareció y el código funcionó bien.
Aunque este es un tema antiguo, espero que esta información pueda ayudar a alguien que esté buscando una solución a lo que el tema del tema exactamente dice. Recomiendo encarecidamente usar la solución de mattgwwalker en github, que requiere que el módulo OleFileIO_PL se instale externamente.