Aller à la documentation
Python

Fichiers

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

Toutes les méthodes

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'])

Chaque fichier que contient la boîte aux lettres, pièces jointes envoyées et reçues et fichiers importés, c'est-à-dire la page Fichiers de l'application. download renvoie le fichier entier sous forme de bytes, les liens sont les liens de téléchargement sous lesquels un fichier est parti, avec le nombre de fois où chacun a été récupéré, et stats correspond à l'onglet Statistiques.

list, list_all et iterate prennent q, kind et sort, ainsi que direction (inbound, outbound ou uploaded), address, les fichiers d'une adresse comparée sans tenir compte de la casse, et since et until, une datetime ou une chaîne ISO 8601. since inclut son moment et until s'arrête juste avant.

Lire demande files:read, et importer, supprimer et publier ou révoquer des liens demandent files:write, qui inclut files:read. Une clé créée avant que les fichiers aient leurs propres droits a reçu les droits correspondants. Une clé limitée à certaines adresses ou certains domaines ne voit que les fichiers de ceux-ci.

Importer et supprimer

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 enregistre les octets tels quels, jusqu'à 100 Mo, sous le nom filename, et renvoie le fichier, dont un envoi joint l'id sous la forme {'fileId': upload['id']}. Passez content_type, sinon les octets sont enregistrés comme application/octet-stream. Il n'est jamais réessayé, car une seconde tentative enregistrerait une seconde copie.

Seul un fichier importé dont rien ne dépend peut être supprimé, et deletable et usage sur chaque fichier l'indiquent à l'avance. delete refuse tout autre fichier avec un 409 file_in_use. delete_many prend jusqu'à 100 id, supprime ce qu'il peut et signale le reste dans kept, chacun avec sa raison, et dans missing.

upload accepte bytes, bytearray ou memoryview. Il attend une réponse au moins 600 secondes, aussi court que soit le timeout du client, sauf si vous passez timeout= à l'appel, et un filename vide lève ValueError avant tout envoi.

Référence