Python - Descargar varios adjuntos de un mail en outlook

 
Vista:
sin imagen de perfil

Descargar varios adjuntos de un mail en outlook

Publicado por Cec (1 intervención) el 07/05/2021 22:39:55
Hola!

Necesito un código para descargar varios adjuntos de un mismo correo en outlook, arme lo siguiente pero solo descarga el primer adjunto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os
import win32com.client
import pandas as pd
import numpy as np
import io
 
 
path = os.path.expanduser("X:\\")
today = datetime.date.today()
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items
subject = "Hola"
 
def saveattachemnts(subject):
    for message in messages:
        if message.Subject == subject and message.Senton.date() == today:
            attachments = message.Attachments
            attachment = attachments.Item(1)
            for attachment in message.Attachments:
                attachment.SaveAsFile(os.path.join(path, str(attachment)))
                if message.Subject == subject and message.Unread:
                    message.Unread = False
                break
saveattachemnts(subject)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Descargar varios adjuntos de un mail en outlook

Publicado por Iván (1 intervención) el 04/07/2022 20:18:07
Hola, prueba con el siguiente código en tu función...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def saveattachemnts(subject):
    for message in messages:
        if message.Subject == subject:
            attNumber = message.Attachments.Count
            if attNumber > 0:
                for n in range(attNumber):
                    att = message.Attachments.Item(n+1)
                    attName = att.DisplayName
                    if not 'image' in attName:
                        print (attName)
                        att.SaveAsfile(os.path.join(path,attName))
 
 
saveattachemnts(subject)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar