J'ai trouvé plusieurs pages sur la façon d'obtenir des pièces jointes, mais pas spécifiquement pour ce dont j'ai besoin.Pièces jointes au sein des pièces jointes
Parfois, je reçois des courriels contenant plusieurs autres courriels en pièces jointes, et chacun de ces courriels contient des fichiers PDF que je voudrais placer sur mon ordinateur quelque part.
Ceci est aussi loin que je suis devenu:
If inSubj("TEST_STRING") Then 'One of my functions from earlier in the code
Dim atmt As Attachment
Dim outAtmt As MailItem 'Outter attachment (mail attachment)
Dim inAtmt As Attachment 'Inner attachment (invoice pdf)
Dim path As String: path = "C:\SOME_PATH"
For Each atmt In msg.Attachments 'Cycle through attachments
If atmt.Type = olEmbeddeditem Then 'If attached is a MailItem
Set outAtmt = atmt 'Outter attchment = said MailItem
For Each inAtmt In outAtmt.Attachments 'Cycle through attachments (the invoices)
inAtmt.SaveAsFile (path & inAtmt.FileName) 'Save file
Next inAtmt
End If
Next atmt
End If
Notez que msg
est le MailItem
qui contient les autres e-mails.
C'est aussi la première fois que j'utilise la boucle For Each, ce qui pourrait être un problème aussi, mais pour le moment, je veux juste avoir la logique d'obtenir ce PDF correct.
Je pense que le problème est que est outAtmt
est un MailItem
, mais je ne sais pas d'autre façon de le contourner.
donc ce qui se passe ?? recevez-vous et erreur? – Sorceri
Oui, avec la ligne Set outAtmt = atmt. Probablement à cause des types incompatibles. – Samsquatch
Utilisation de OpenSharedItem http://stackoverflow.com/questions/18723017/how-can-i-handle-the-attachment-of-an-attachment Aucun code en réponse. Utilisation de CreateItemFromTemplate http://stackoverflow.com/questions/7890612/vba-code-to-save-an-attachment-excel-file-from-an-outlook-email-that-was-insid- Code en réponse. – niton