> 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/spanish/function-blocks/blocks-reference/input-output/communication/send-mail.md).

# Send Mail

Este bloque de función permite enviar correos electrónicos usando Gmail SMTP. Está pensado para enviar mensajes de texto plano y archivos adjuntos opcionales desde los flujos de trabajo. El bloque espera que la cuenta remitente esté habilitada para acceso Gmail API / SMTP.

## 📥 Inputs

`Subject` - El asunto del correo (string).

`Content` - El cuerpo del mensaje (string).

`Sender Address` - La dirección Gmail que enviará el mensaje (string). Debe estar configurada para uso SMTP/API.

`Mail API Password` - La contraseña o clave API usada para autenticar la dirección remitente (string).

`Receiver Address` - La dirección de correo destino (string).

`Attachment File Path` - Ruta completa opcional del archivo a adjuntar (string). Dejar vacío si no hay adjunto.

`Trigger` - Señal booleana que inicia el envío cuando está activa.

## 📤 Outputs

`Success` - Booleano que indica si la acción de envío tuvo éxito.

## 🕹️ Controls

`Send` - No hay botón de envío separado; el envío se inicia proporcionando un `Trigger` activo al bloque. Configure los campos del mensaje a través de los inputs.

## ⚙️ Mecanismo de ejecución

* El bloque espera que se proporcionen los inputs y que el `Trigger` se vuelva activo.
* Cuando se activa, intenta autenticar la cuenta remitente proporcionada y enviar el mensaje al receptor.
* Los adjuntos se incluyen si se proporciona una ruta de archivo válida.
* El bloque devuelve `Success` True si el envío fue exitoso, False en caso contrario.
* Si la autenticación o la entrega fallan por un problema transitorio, el bloque intentará reconectar y reenviar automáticamente.

## ✨ Features

* Envía correos en texto plano vía Gmail SMTP.
* Soporta un adjunto por ruta de archivo.
* Usa una sesión en caché para evitar reautenticar en cada trigger cuando es posible.
* Reconexión y reintento automático ante problemas transitorios de sesión.

## 📝 Usage Instructions

1. Proporcione las credenciales del remitente y habilite el acceso SMTP/API en la cuenta Gmail.
2. Complete los inputs `Subject`, `Content`, `Sender Address`, `Mail API Password` y `Receiver Address`.
3. Opcionalmente, proporcione una ruta de archivo en `Attachment File Path` para adjuntos.
4. Active el input `Trigger` para enviar el mensaje.
5. Monitoree la salida `Success` para confirmar la entrega.

## 💡 Tips and Tricks

* Para capturar y adjuntar una imagen desde una cámara, combine este bloque con `Camera USB` o `Camera IP (ONVIF)` y guarde el frame usando `Image Write` o `Image Logger`. Proporcione la ruta guardada a `Attachment File Path`.
* Si desea enviar notificaciones solo una vez cuando ocurra un evento, use `Rising Edge` o `Logic Input` para crear un pulso de `Trigger` único.
* Construya el texto del mensaje dinámicamente con `String Merge` o prepare registros estructurados con `Data to JSON` antes de enviar.
* Para enviar múltiples imágenes, use `Multi Image Write` para almacenar las imágenes y luego adjunte desde las rutas de archivo (una a la vez según soporte).
* Para enviar snapshots de eventos como parte de pipelines de análisis, combine con bloques de análisis como `Find Object` o `Mask Detection` para decidir cuándo activar el correo.

## 🛠️ Troubleshooting

* Fallo de autenticación: verifique que la `Sender Address` esté habilitada para SMTP/API y que la `Mail API Password` sea correcta. Revise la configuración de seguridad de la cuenta Gmail.
* Adjunto no enviado: asegúrese de que la ruta en `Attachment File Path` apunte a un archivo existente y sea accesible desde el entorno de ejecución.
* Correo no entregado: verifique la ortografía de la dirección del receptor y las carpetas de spam/junk. Restricciones de red o firewalls pueden bloquear los puertos SMTP.
* Trigger ignorado: confirme que el input `Trigger` reciba un valor True explícito (o un flanco ascendente) en tiempo de ejecución.
* Sesión expirada: el bloque intentará reconectar automáticamente, pero si fallos persisten, vuelva a comprobar credenciales y conectividad de red.

## 🔒 Privacidad y seguridad

* No almacene contraseñas sensibles en proyectos compartidos. Use manejo seguro de secretos cuando sea posible.
* Limite los privilegios de la cuenta remitente y active las medidas de seguridad apropiadas en la cuenta Gmail utilizada para envíos.
