Saltar al contenido

Analizando archivos .msg de Outlook con Python

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *