# Invia la prima email via SMTP

> Ottieni le credenziali SMTP, scegli una porta e invia un’email di prova tramite smtp.emailit.com con swaks, OpenSSL o Python, poi collega la tua app o il tuo framework.

Questo avvio rapido mostra come inviare un’email di prova tramite l’SMTP relay di Emailit dal terminale, poi come collegare la tua app. Usa SMTP quando il tuo software ha già le impostazioni SMTP. Per il codice nuovo, l’[API](/it/docs/quickstart/api/) offre di più.

## Prima di iniziare

- Un dominio di invio verificato. Se non ne hai ancora uno, segui la prima sezione dell’[avvio rapido per l’API](/it/docs/quickstart/api/#add-and-verify-your-domain) o [Aggiungi un dominio](/it/docs/domains/add-a-domain/).
- Una chiave API. Creane una in **Email API → API Keys** con **Add API key**. La chiave API è la tua password SMTP.

## Le tue credenziali SMTP

| Impostazione | Valore |
| --- | --- |
| Host | `smtp.emailit.com` |
| Porta | `587` con STARTTLS (consigliata). Per le alternative, vedi la tabella qui sotto. |
| Nome utente | `emailit` |
| Password | La tua chiave API, che inizia con `secret_` |
| Autenticazione | `PLAIN` o `LOGIN` |
| Indirizzo From | Qualsiasi indirizzo di un dominio di invio verificato, ad esempio `Acme <hello@acme.com>` |

Puoi vedere queste impostazioni anche nel riquadro **SMTP Info** quando apri una chiave in **Email API → API Keys**.

| Porta | Crittografia | Quando usarla |
| --- | --- | --- |
| `587` | STARTTLS | L’impostazione predefinita per la maggior parte di app e librerie |
| `465` | TLS dal primo byte (TLS implicito) | Quando il tuo client la chiama «SSL» o «SMTPS» |
| `2525` | STARTTLS | Quando la tua rete o il tuo provider di hosting blocca la 587 |
| `2587` | STARTTLS | Un’altra alternativa quando la 587 e la 2525 sono bloccate |
| `25` | STARTTLS | Relay da server a server. Molti provider cloud bloccano la porta 25 in uscita. |

Il relay offre TLS su tutte le porte ma non lo impone. Attiva sempre TLS nel client, così la chiave API non viene inviata in chiaro.

## Invia un’email di prova

Scegli uno di questi strumenti. Sostituisci `hello@acme.com` con un indirizzo del tuo dominio verificato e `ada@example.com` con l’indirizzo email con cui ti sei registrato.

> **Modalità sandbox:** Finché il workspace non ha l’accesso alla produzione, puoi inviare solo agli indirizzi email degli account dei membri del workspace. Gli altri destinatari vengono rifiutati con `550 Unverified workspaces can only send to workspace members' account emails`. Vedi [Accesso alla produzione](/it/docs/workspaces/production-access/).

### swaks

[swaks](https://github.com/jetmore/swaks) è uno strumento a riga di comando per testare SMTP. Installalo con `brew install swaks` o `apt install swaks`, poi esegui:

```bash
swaks --server smtp.emailit.com:587 --tls \
  --auth-user emailit --auth-password "$EMAILIT_API_KEY" \
  --from hello@acme.com --to ada@example.com \
  --header "Subject: Hello from Emailit SMTP" \
  --body "This is my first email sent through the Emailit SMTP relay."
```

swaks stampa l’intera conversazione SMTP. L’ultima risposta del server contiene l’ID dell’email:

```text
<~  250 2.0.0 OK: queued as em_2pX7cN4kQ9vLm3RtB8yWd1Zs
```

### OpenSSL

OpenSSL è preinstallato sulla maggior parte dei sistemi e ti permette di digitare tu stesso i comandi SMTP. Per prima cosa, codifica le credenziali per `AUTH PLAIN`:

```bash
printf '\0emailit\0%s' "$EMAILIT_API_KEY" | base64
```

Poi apri una connessione e digita i comandi seguenti, incollando la stringa codificata dopo `AUTH PLAIN`:

```bash
openssl s_client -connect smtp.emailit.com:587 -starttls smtp -crlf -quiet
```

```text
EHLO localhost
AUTH PLAIN AGVtYWlsaXQAc2VjcmV0X...
MAIL FROM:<hello@acme.com>
RCPT TO:<ada@example.com>
DATA
From: Acme <hello@acme.com>
To: ada@example.com
Subject: Hello from Emailit SMTP

This is my first email sent through the Emailit SMTP relay.
.
QUIT
```

Dopo `AUTH PLAIN` il server risponde `235`. Dopo la riga con un solo `.`, risponde `250 2.0.0 OK: queued as em_…`.

### Python

Il modulo integrato `smtplib` di Python non richiede pacchetti aggiuntivi:

```python title="send_smtp.py"
from email.message import EmailMessage

msg = EmailMessage()
msg["From"] = "Acme <hello@acme.com>"
msg["To"] = "ada@example.com"
msg["Subject"] = "Hello from Emailit SMTP"
msg.set_content("This is my first email sent through the Emailit SMTP relay.")
msg.add_alternative("<p>This is my first email sent through the Emailit SMTP relay.</p>", subtype="html")

with smtplib.SMTP("smtp.emailit.com", 587) as smtp:
    smtp.starttls()
    smtp.login("emailit", os.environ["EMAILIT_API_KEY"])
    smtp.send_message(msg)

print("Accepted by Emailit")
```

Se lo script termina senza eccezioni, Emailit ha accettato l’email.

## Controllala nel pannello

Vai a **Email API → Emails**. L’email è in cima alla scheda **Outgoing**, e il suo stato passa da **accepted** a **delivered** quando il server del destinatario la accetta. Ogni sessione SMTP compare anche in **Email API → Logs** con l’origine **SMTP**, così puoi vedere anche gli accessi non riusciti e i messaggi rifiutati.

## Risposte comuni

| Risposta | Causa | Soluzione |
| --- | --- | --- |
| `535 Authentication failed` | Chiave API errata o eliminata | Usa una chiave API valida come password. Vedi [errori 535](/it/docs/kb/smtp-535-authentication-failed/). |
| `530 From/Sender domain is not verified for this workspace` | L’indirizzo From non appartiene a un dominio verificato | Verifica il dominio, oppure cambia l’indirizzo From. Vedi [errori 530](/it/docs/kb/smtp-530-from-domain-not-verified/). |
| `550 Unverified workspaces can only send to workspace members' account emails` | Modalità sandbox | Invia all’indirizzo email dell’account di un membro, oppure richiedi l’accesso alla produzione |
| `452 4.4.5 Messages per second limit exceeded` | Hai superato il limite al secondo | Rallenta e riprova. I limiti sono condivisi con l’API. |
| `452 4.5.3 Daily message limit exceeded` | Hai raggiunto il limite di oggi | Attendi la mezzanotte UTC, oppure [richiedi un aumento](/it/docs/limits/) |
| Timeout della connessione | La tua rete blocca la porta | Prova la `2525` o la `2587`. Vedi [Timeout di connessione](/it/docs/kb/smtp-connection-timeout-port-25/). |

Per tutti i codici di risposta, vedi [Risoluzione dei problemi SMTP](/it/docs/smtp/troubleshooting/).

## Collega la tua app

Inserisci le stesse impostazioni nella tua app o nel tuo framework. Queste guide mostrano la configurazione esatta:

  - [Laravel](/it/docs/frameworks/laravel/)
  - [PHP](/it/docs/frameworks/php/)
  - [WordPress](/it/docs/frameworks/wordpress/)
  - [Node.js](/it/docs/frameworks/nodejs/)
  - [Next.js](/it/docs/frameworks/nextjs/)
  - [Nuxt](/it/docs/frameworks/nuxt/)
  - [Python](/it/docs/frameworks/python/)
  - [Rails](/it/docs/frameworks/rails/)
  - [Go](/it/docs/frameworks/go/)
  - [Java](/it/docs/frameworks/java/)
  - [.NET](/it/docs/frameworks/dotnet/)

## Passaggi successivi

  - [Impostazioni SMTP](/it/docs/smtp/settings/): Porte, TLS, dimensione dei messaggi e come Emailit tratta i tuoi header.
  - [Header SMTP](/it/docs/smtp/headers/): Quali header Emailit aggiunge, modifica o rimuove.
  - [Configura i webhook](/it/docs/webhooks/set-up/): Ricevi gli eventi di consegna e di bounce anche per le email SMTP.
  - [API o SMTP](/it/docs/get-started/api-or-smtp/): Cosa può fare l’API che SMTP non può.

---
Fonte: https://emailit.com/it/docs/quickstart/smtp/
