wpforge
Goto Top

Gmail Konto alle Anhänge herunterladen

Hallo,
ich habe seit mehreren Jahren ein privates Gmailkonto.
Ich lösche generell keine Emails, sondern belasse diese dort. Dementsprechend sieht es also aus.
Durch etwas rum experimentieren habe ich es auch geschafft, dass ein Haufen Emails für mich so nicht mehr auffindbar sind. Allerdings werden Diese von der Postfachsuche gefunden.
Nun suche ich einen Weg, wirklich alle im Postfach befindlichen Anhänge herunterzuladen. Das dürften einige tausend sein.
Bevorzugen würde ich ein phpscript für so etwas.
Generell bin ich aber für alle Lösungen, die nicht 3 Tage suchen und klicken bedeuten, offen.

Danke schon mal für eure Antworten

Content-Key: 292151

Url: https://administrator.de/contentid/292151

Printed on: April 26, 2024 at 10:04 o'clock

Member: StefanKittel
StefanKittel Jan 04, 2016 at 09:16:16 (UTC)
Goto Top
Hallo,

Du kannst recht einfach Dir ein PHP-Skript schreiben welches sich per IMAP verbindet und die Mails mit Anhang lädt und speichert.
http://php.net/manual/de/book.imap.php

Viele Grüße

Stefan
Member: colinardo
colinardo Jan 04, 2016 updated at 12:26:37 (UTC)
Goto Top
Hallo zusammen,
oder du nutzt meine kürzlich veröffentlichte Powershell-Skripts zu GoogleMail:
Powershell: Googlemail (GMail) nativ mit Powershell verwalten

Für das extrahieren aller Mails mit Anhängen wäre das zusätzlich zu den Basis-Funktionen(welche natürlich mit eingebunden werden müssen damit die Funktion zur Verfügung steht!) folgender Powershell-Code
# Ordner in dem die Attachments gespeichert werden
$folderSave = 'D:\Attachments'  
$mails = Get-GoogleMails -query 'has:attachment' -labels @()  

function Replace-IllegalPathChars([parameter(ValueFromPipeline=$true)]$string,$replaceString='_'){  
   return ($string -replace '^com[1-9]|^lpt[1-9]|^con|^nul|^prn|[\\/:?<>|"*]',$replaceString)  
}

$mails | %{
    $mailfolder = Replace-IllegalPathChars ($_.date.toString('yyyyMMdd-HHmmss') + '_' + $_.Headers.From  + '_' + $_.Headers.Subject + '_' + $_.id) ''  
    if ($_.Attachments){
        $targetFolder = "$folderSave\$mailfolder"  
        if (!(Test-Path $targetFolder)){md $targetFolder -Force | out-null}
        $_.Attachments | %{
            write-host "Speichere Attachment in '$targetFolder\$($_.Name)'"  
            $_.SaveAs("$targetFolder\$($_.Name)")  
        }
    }
}
Damit werden dann alle Attachments geordnet in Unterordern nach dem Schema YYYYMMDD-HHMMSS_<MAIL FROM>_<SUBJECT>_<mailID> abgelegt.

Grüße Uwe