Pièces Jointes
Les pièces jointes vous permettent d’envoyer des fichiers tels que des images, des journaux, des PDF et des artefacts en même temps que votre message. Leur arrivée sous forme de véritables pièces jointes dépend de ce que le service de destination prend en charge.
Pièces jointes via le CLI
Section intitulée « Pièces jointes via le CLI »Utilisez --attach une ou plusieurs fois :
apprise -t "Alerte système" -b "Voir le journal en pièce jointe" \ --attach /var/log/syslog \ "mailto://user:pass@example.com"
apprise -b "Voici les fichiers" \ --attach /tmp/photo1.jpg \ --attach /tmp/photo2.jpg \ "tgram://..."Pièces Jointes en Python
Section intitulée « Pièces Jointes en Python »Passez un chemin unique ou une liste de chemins via attach :
from apprise import Apprise
apobj = Apprise()apobj.add("tgram://...")
# Pièce jointe uniqueapobj.notify(body="Voir la pièce jointe", attach="/path/to/file.txt")
# Plusieurs pièces jointesapobj.notify( body="Artefacts joints", attach=[ "/path/to/build.log", "/path/to/report.pdf", ],)Pièces Jointes Distantes (URLs)
Section intitulée « Pièces Jointes Distantes (URLs) »Vous pouvez également fournir une URL et Apprise la récupérera avant la diffusion :
# Apprise téléchargera cette image et l'enverra à la destination# si vous fournissez un couple user/pass, il s'authentifiera même# avant de récupérer la pièce jointeapobj.notify( body="Capture de la caméra de sécurité", attach="http://admin:pass@example.local/cam/snapshot.jpg")Pièces Jointes en Mémoire (AttachMemory)
Section intitulée « Pièces Jointes en Mémoire (AttachMemory) »Lorsque vous générez du contenu à la volée — HTML rendu, graphiques, CSV, PDF — vous pouvez le transmettre directement sous forme d’objet AttachMemory sans écrire quoi que ce soit sur disque.
Passez directement une chaîne ou des bytes — aucun fichier temporaire n’est créé :
import apprisefrom apprise.attachment import AttachMemory
apobj = apprise.Apprise()apobj.add("discord://webhook_id/webhook_token/")
apobj.notify( body="Les relevés du jour sont en pièce jointe.", attach=AttachMemory( content="date,value\n2026-03-20,42\n2026-03-21,38\n", name="readings.csv", mimetype="text/csv", ),)Le contenu str est automatiquement encodé en UTF-8. Utilisez bytes si vous disposez déjà de données binaires.
Générez une image avec Pillow et envoyez-la sans l’enregistrer sur disque :
import ioimport apprisefrom apprise.attachment import AttachMemoryfrom PIL import Image, ImageDraw
# Dessiner une image simpleimg = Image.new("RGB", (400, 200), color=(30, 30, 30))draw = ImageDraw.Draw(img)draw.text((20, 80), "Bonjour depuis Apprise !", fill=(255, 255, 0))
# Rendre dans un tampon mémoirebuf = io.BytesIO()img.save(buf, format="PNG")
apobj = apprise.Apprise()apobj.add("tgram://bottoken/ChatID")
apobj.notify( body="Image générée en pièce jointe.", attach=AttachMemory( content=buf.getvalue(), name="hello.png", mimetype="image/png", ),)Générez un graphique avec Matplotlib et joignez-le directement :
import ioimport apprisefrom apprise.attachment import AttachMemoryimport matplotlib.pyplot as plt
# Construire le graphiquefig, ax = plt.subplots()ax.plot([1, 2, 3, 4], [10, 24, 18, 32])ax.set_title("Mesure quotidienne")ax.set_xlabel("Jour")ax.set_ylabel("Valeur")
# Rendre dans un tampon mémoirebuf = io.BytesIO()fig.savefig(buf, format="png")plt.close(fig)
apobj = apprise.Apprise()apobj.add("tgram://bottoken/ChatID")
apobj.notify( body="Graphique de tendance nocturne en pièce jointe.", attach=AttachMemory( content=buf.getvalue(), name="trend.png", mimetype="image/png", ),) Questions ou commentaires ?
Documentation
Vous avez repéré une faute de frappe ou une erreur ?
Problèmes Techniques
Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :