> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/input-output/communication/send-mail.md).

# Send Mail

Ce bloc de fonction permet d'envoyer des e-mails via Gmail SMTP. Il est conçu pour l'envoi de messages en texte brut et, en option, de pièces jointes depuis des workflows. Le bloc suppose que le compte expéditeur est configuré pour l'accès à l'API Gmail / SMTP.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

`Subject` - Le sujet de l'e-mail (chaîne de caractères).

`Content` - Le corps du message (chaîne de caractères, texte brut).

`Sender Address` - L'adresse Gmail qui enverra le message (chaîne). Doit être configurée pour l'utilisation SMTP/API.

`Mail API Password` - Mot de passe ou clé API pour authentifier l'adresse expéditrice (chaîne).

`Receiver Address` - L'adresse e-mail du destinataire (chaîne).

`Attachment File Path` - Chemin complet facultatif du fichier à joindre (chaîne). Laisser vide si pas de pièce jointe.

`Trigger` - Signal booléen qui déclenche l'envoi lorsqu'il est actif.

## 📤 Sorties <a href="#outputs" id="outputs"></a>

`Success` - Booléen indiquant si l'envoi a réussi.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Send` - Il n'y a pas de bouton d'envoi séparé ; l'envoi est déclenché en fournissant un `Trigger` actif au bloc. Configurez les champs du message via les entrées.

## ⚙️ Mécanisme d'exécution <a href="#how-it-runs" id="how-it-runs"></a>

* Le bloc attend que les entrées soient fournies et que le `Trigger` devienne actif.
* Lors du déclenchement, il tente d'authentifier le compte expéditeur fourni et d'envoyer le message au destinataire.
* Les pièces jointes sont incluses si un chemin de fichier valide est fourni dans `Attachment File Path`.
* Le bloc renvoie `Success` à True en cas d'envoi réussi, sinon False.
* En cas d'échec d'authentification ou de livraison dû à un problème transitoire, le bloc tentera automatiquement de se reconnecter et de renvoyer.

## ✨ Fonctionnalités <a href="#features" id="features"></a>

* Envoi d'e-mails en texte brut via Gmail SMTP.
* Prise en charge d'une pièce jointe unique via un chemin de fichier.
* Utilisation d'une session mise en cache pour éviter une ré-authentification à chaque déclenchement lorsque possible.
* Reconnexion et nouvelle tentative automatiques en cas de problèmes de session transitoires.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Fournissez les identifiants de l'expéditeur et activez l'accès SMTP/API sur le compte Gmail.
2. Remplissez les entrées `Subject`, `Content`, `Sender Address`, `Mail API Password` et `Receiver Address`.
3. Facultatif : indiquez un chemin de fichier dans `Attachment File Path` pour joindre un fichier.
4. Activez l'entrée `Trigger` pour envoyer le message.
5. Surveillez la sortie `Success` pour confirmer la livraison.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Pour capturer et joindre une image depuis une caméra, combinez ce bloc avec `Camera USB` ou `Camera IP (ONVIF)` et enregistrez la trame avec `Image Write` ou `Image Logger`. Fournissez le chemin sauvegardé à `Attachment File Path`.
* Si vous souhaitez n'envoyer une notification qu'une seule fois lors d'un événement, utilisez `Rising Edge` ou `Logic Input` pour générer une impulsion de `Trigger` unique.
* Construisez le texte du message dynamiquement avec `String Merge` ou préparez des logs structurés avec `Data to JSON` avant l'envoi.
* Pour envoyer plusieurs images, utilisez `Multi Image Write` pour stocker les images puis joignez-les via leurs chemins de fichiers (une à la fois si le bloc le supporte).

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Échec d'authentification : vérifiez que `Sender Address` est activé pour SMTP/API et que `Mail API Password` est correct. Contrôlez les paramètres de sécurité du compte Gmail.
* Pièce jointe non envoyée : assurez-vous que le chemin dans `Attachment File Path` pointe vers un fichier existant et accessible depuis l'environnement d'exécution.
* E-mail non reçu : vérifiez l'orthographe de l'adresse destinataire et les dossiers spam/courrier indésirable. Des restrictions réseau ou des pare-feux peuvent bloquer les ports SMTP.
* Trigger ignoré : confirmez que l'entrée `Trigger` reçoit une valeur explicite True (ou un front montant) au moment de l'exécution.
* Session expirée : le bloc tentera une reconnexion automatique, mais si les échecs persistent, revérifiez les identifiants et la connectivité réseau.

## 🔒 Confidentialité et sécurité <a href="#privacy-and-security" id="privacy-and-security"></a>

* Ne stockez pas de mots de passe sensibles dans des projets partagés. Utilisez un gestionnaire de secrets sécurisé si possible.
* Limitez les privilèges du compte expéditeur et activez les mesures de sécurité appropriées sur le compte Gmail utilisé pour l'envoi.
