---
name: EmailMessage
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type EmailMessage struct {
      From        string
      To          []string
      CC          []string
      BCC         []string
      Subject     string
      BodyHTML    string
      BodyText    string
      Attachments []EmailAttachment
      Headers     map[string]string
  }
description: "Mensaje de email listo para enviar. Inmutable — construir con EmailBuildHTML, EmailBuildText o EmailWithAttachment."
tags: [email, smtp, message, mime]
uses_types: [EmailAttachment_go_infra]
file_path: "functions/infra/email_types.go"
---

## Ejemplo

```go
msg := EmailBuildHTML("alice@example.com", []string{"bob@example.com"}, "Hola", "<b>Hola Bob</b>")
```

## Notas

Tipo producto. `BodyHTML` y `BodyText` son opcionales pero al menos uno debe estar presente para que el mensaje sea valido. `Attachments` puede ser nil. `Headers` permite agregar cabeceras MIME custom como `X-Mailer`.
