Zur Dokumentation springen
Python

Dateien

`files.list`, `list_all`, `iterate`, `get`, `download`, `list_links`, `list_all_links`, `iterate_links`, `create_link`, `revoke_link`, `stats`, `upload`, `delete` und `delete_many`.

Jede Methode

files.py
from pathlib import Path from openemail import openemail page = openemail.files.list(kind='pdf', sort='largest')file = page['items'][0] Path(file['filename']).write_bytes(openemail.files.download(file['id'])) links = openemail.files.list_all_links(file['id'])print([(link['url'], link['downloads']) for link in links]) stats = openemail.files.stats()print(stats['totals']['files'], stats['uploaded']['bytes'])

Jede Datei, die das Postfach enthält, gesendete und empfangene Anhänge und die hochgeladenen Dateien, die Seite „Dateien“ der App. download gibt die ganze Datei als bytes zurück, die Links sind die Download-Links, als die eine Datei verschickt wurde, mit der Angabe, wie oft jeder abgerufen wurde, und stats ist der Tab „Analysen“.

list, list_all und iterate nehmen q, kind und sort, außerdem direction (inbound, outbound oder uploaded), address, die Dateien einer Adresse, ohne Beachtung der Groß- und Kleinschreibung verglichen, sowie since und until, ein datetime oder einen ISO-8601-String. since schließt seinen Zeitpunkt ein, und until endet davor.

Lesen braucht files:read, und Hochladen, Löschen sowie das Veröffentlichen oder Widerrufen von Links brauchen files:write, das files:read einschließt. Ein Schlüssel, der erstellt wurde, bevor Dateien eigene Scopes hatten, erhielt die passenden. Ein auf bestimmte Adressen oder Domains beschränkter Schlüssel sieht nur die Dateien auf diesen.

Hochladen und löschen

upload.py
from pathlib import Path from openemail import openemail upload = openemail.files.upload(    Path('price-list.pdf').read_bytes(),    filename='price-list.pdf',    content_type='application/pdf',) if upload['deletable']:    openemail.files.delete(upload['id']) result = openemail.files.delete_many([    'file_0c4e7a91d2b84f63a5e19b7d',    'file_6bb640f5b99e47deb758f1f5',])for kept in result['kept']:    print(kept['filename'], kept['reason'])

upload speichert die Bytes, wie sie sind, bis 100 MB, unter filename und gibt die Datei zurück, deren ID ein Versand als {'fileId': upload['id']} anhängt. Übergeben Sie content_type, sonst werden die Bytes als application/octet-stream gespeichert. Es wird nie wiederholt, weil ein zweiter Versuch eine zweite Kopie speichern würde.

Nur ein Upload, von dem nichts abhängt, kann gelöscht werden, und deletable und usage an jeder Datei sagen das vorab. delete lehnt jede andere Datei mit einem 409 file_in_use ab. delete_many nimmt bis zu 100 IDs, löscht, was es kann, und meldet den Rest in kept, jede mit ihrem Grund, und in missing.

upload nimmt bytes, bytearray oder memoryview entgegen. Es wartet mindestens 600 Sekunden auf eine Antwort, wie kurz das timeout des Clients auch ist, sofern Sie dem Aufruf nicht timeout= übergeben, und ein leerer filename löst ValueError aus, bevor irgendetwas gesendet wird.

Referenz