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-ID: 292151

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

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

StefanKittel
StefanKittel 04.01.2016 um 10:16:16 Uhr
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
colinardo
colinardo 04.01.2016 aktualisiert um 13:26:37 Uhr
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