# Header e risposte SMTP

> Quali header Emailit aggiunge, riscrive o rimuove nella posta SMTP, come leggere gli ID delle email dalla risposta 250 e come aggiungere tu List-Unsubscribe.

Emailit inoltra il messaggio MIME che invii via SMTP in gran parte così com’è, ma modifica alcuni header perché il messaggio superi l’autenticazione e possa essere tracciato. Questa pagina elenca queste modifiche, spiega la risposta `250` che contiene i nuovi ID delle email e descrive gli header che devi aggiungere tu.

## Header che Emailit aggiunge o riscrive

| Header | Cosa fa Emailit |
| --- | --- |
| `Received` | Aggiunge gli header di tracciamento del percorso per il relay e per il server di posta di Emailit che consegna il messaggio. |
| `Message-ID` | Sostituisce il tuo con `<token@your-domain>`, dove il dominio è quello dell’indirizzo From. La copia di ogni destinatario riceve un proprio Message-ID. |
| `Date` | Lo imposta quando Emailit elabora il messaggio per la prima volta per la consegna. |
| `Subject` | Lo riscrive a partire dall’oggetto decodificato e ricodifica i caratteri non ASCII. |
| `Return-Path` | Imposta un indirizzo per i bounce sul sottodominio del return path, `emailit.<your-domain>`. Lo stesso indirizzo viene usato come mittente della busta, quindi SPF viene superato per il tuo dominio. |
| `X-Emailit-ID` | Aggiunge il token dell’email. |
| `Feedback-ID` | Aggiunge un identificatore che i provider di posta usano nei report sulle segnalazioni. |
| `DKIM-Signature` | Firma il messaggio con la chiave DKIM del tuo dominio (selettore `emailit` per impostazione predefinita). Può essere aggiunta una seconda firma per `emailitmail.com` per i feedback loop delle segnalazioni. |

La firma DKIM copre, tra gli altri, gli header `From`, `To`, `Cc`, `Subject`, `Date`, `Message-ID`, `Reply-To`, gli header MIME e gli header `List-*`. Non modificare un messaggio dopo che Emailit lo ha firmato, ad esempio con una mailing list che riscrive l’oggetto, altrimenti la firma non è più valida.

## Header che Emailit rimuove

| Header | Quando |
| --- | --- |
| `Bcc` | Sempre, così i destinatari in Bcc restano nascosti. |
| `Reply-To` | Quando indica lo stesso indirizzo di `From`. Alcuni filtri antispam penalizzano un Reply-To ridondante. |
| `Content-Disposition` | Al livello principale del messaggio. Le parti degli allegati mantengono il proprio. |

Tutto il resto, compresi i tuoi header `X-`, viene consegnato senza modifiche.

## Gli header di controllo non vengono letti via SMTP

> **Usa l’API per il controllo per singola email:** L’SMTP relay non legge nessun header `X-Emailit-*`. Non puoi impostare con gli header il tracciamento, i metadati, un template o un orario di invio. Il tracciamento segue le impostazioni **Track loads** e **Track clicks** del dominio di invio in **Email API → Domains**. Per il controllo per singola email, usa l’[API email](/it/docs/email-api/send-email/).

Non includere un header `X-Emailit-ID` nei messaggi che invii. Emailit lo usa per riconoscere i messaggi che ha già elaborato, e un messaggio che lo contiene salta la riscrittura degli header e la firma DKIM descritte sopra.

## La risposta 250

Quando il relay accetta un messaggio, la sua risposta alla fine di `DATA` elenca gli ID delle email di Emailit che ha creato, uno per destinatario:

```text
250 2.0.0 OK: queued as em_33VtK8mRq1xZp7LwN4cY2bHsDfa, em_33VtK8nB5rTq0YxW3mJk9PdLsUe
```

- `2.0.0` è il codice di stato esteso per il successo.
- Ogni ID `em_` è lo stesso ID che l’API, il pannello e i webhook usano per l’email di quel destinatario.
- La riga di risposta ha un limite di lunghezza. Se non ci stanno tutti gli ID, cosa che succede intorno ai 15 destinatari, la risposta contiene solo il primo ID. Trova gli altri in **Email API → Emails** o negli eventi dei webhook.

La maggior parte delle librerie espone la risposta. In Nodemailer è `info.response`. In PHPMailer, chiama `$mail->getSMTPInstance()->getLastReply()` dopo `send()`. Salva l’ID accanto al tuo record, così puoi abbinare gli [eventi dei webhook](/it/docs/webhooks/event-types/) o cercare l’email in seguito con [Recupera un’email](/it/docs/api-reference/emails/get/).

## Aggiungi tu List-Unsubscribe

Emailit aggiunge gli header `List-Unsubscribe` solo alle email delle [campagne](/it/docs/campaigns/). Se invii newsletter o altra posta massiva via SMTP, aggiungi tu entrambi gli header al messaggio:

```text
List-Unsubscribe: <https://acme.com/unsubscribe?u=881&l=digest>, <mailto:unsubscribe@acme.com?subject=unsubscribe-881>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
```

L’URL `https` deve accettare una `POST` con il corpo `List-Unsubscribe=One-Click` e disiscrivere la persona senza passaggi di conferma (RFC 8058). Emailit include entrambi gli header nella firma DKIM, come richiedono Gmail e Yahoo per la disiscrizione con un clic.

**Node.js**

```javascript
await transporter.sendMail({
  from: 'Acme <news@acme.com>',
  to: 'ada@example.com',
  subject: 'Acme weekly digest',
  html: '<p>This week at Acme…</p>',
  headers: {
    'List-Unsubscribe': '<https://acme.com/unsubscribe?u=881&l=digest>',
    'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click',
  },
});
```

**Python**

```python
msg["List-Unsubscribe"] = "<https://acme.com/unsubscribe?u=881&l=digest>"
msg["List-Unsubscribe-Post"] = "List-Unsubscribe=One-Click"
```

**PHP**

```php
$mail->addCustomHeader('List-Unsubscribe', '<https://acme.com/unsubscribe?u=881&l=digest>');
$mail->addCustomHeader('List-Unsubscribe-Post', 'List-Unsubscribe=One-Click');
```

## Vedi anche

- [Impostazioni SMTP](/it/docs/smtp/settings/)
- [Header e metadati](/it/docs/email-api/headers-and-metadata/) per gli invii con l’API
- [Dizionario degli header email](/it/docs/dictionary/email-headers/)
- [Tracciamento di aperture e clic](/it/docs/tracking/)

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