Saltar al contenido

Extraiga la dirección de correo electrónico del remitente de Outlook Exchange en Python usando win32

Solución:

En primer lugar, su código fallará si tiene un elemento que no sea MailItem en la carpeta, como ReportItem, MeetingItem, etc. Necesita comprobar el Class propiedad.

En segundo lugar, debe verificar el tipo de dirección de correo electrónico del remitente y usar SenderEmailAddress solo para el tipo de dirección “SMTP”. En VB:

 for each msg in all_inbox
   if msg.Class = 43 Then
     if msg.SenderEmailType = "EX" Then
       print msg.Sender.GetExchangeUser().PrimarySmtpAddress
     Else
       print msg.SenderEmailAddress 
     End If  
   End If
 next

Solo estoy modificando el programa dado anteriormente en Python.

from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
folders = inbox.Folders

for msg in all_inbox:
       if msg.Class==43:
           if msg.SenderEmailType=='EX':
               print msg.Sender.GetExchangeUser().PrimarySmtpAddress
           else:
               print msg.SenderEmailAddress

Esto imprimirá todas las direcciones de correo electrónico del remitente en las carpetas de la bandeja de entrada únicamente.

¡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 *