# SMTP-Header und -Antworten

> Welche Header Emailit bei E-Mails per SMTP hinzufügt, umschreibt oder entfernt, wie Sie E-Mail-IDs aus der Antwort 250 auslesen und wie Sie List-Unsubscribe selbst hinzufügen.

Emailit leitet die MIME-Nachricht, die Sie per SMTP einreichen, weitgehend unverändert weiter, ändert aber einige Header, damit die Nachricht authentifiziert ist und getrackt werden kann. Diese Seite listet diese Änderungen auf, erklärt die Antwort `250` mit den neuen E-Mail-IDs und behandelt die Header, die Sie selbst hinzufügen müssen.

## Header, die Emailit hinzufügt oder umschreibt

| Header | Was Emailit tut |
| --- | --- |
| `Received` | Fügt Trace-Header für das Relay und für den Emailit-Mailserver hinzu, der die Nachricht zustellt. |
| `Message-ID` | Ersetzt Ihre durch `<token@your-domain>`, wobei die Domain die aus Ihrer Absenderadresse ist. Die Kopie jedes Empfängers erhält eine eigene Message-ID. |
| `Date` | Setzt den Zeitpunkt, zu dem Emailit die Nachricht erstmals für die Zustellung verarbeitet. |
| `Subject` | Schreibt ihn aus dem dekodierten Betreff neu und kodiert Nicht-ASCII-Zeichen erneut. |
| `Return-Path` | Setzt eine Bounce-Adresse auf Ihrer Return-Path-Subdomain, `emailit.<your-domain>`. Dieselbe Adresse wird als Envelope-Absender verwendet, sodass SPF für Ihre Domain besteht. |
| `X-Emailit-ID` | Fügt das Token der E-Mail hinzu. |
| `Feedback-ID` | Fügt eine Kennung hinzu, die Postfachanbieter in Beschwerdeberichten verwenden. |
| `DKIM-Signature` | Signiert die Nachricht mit dem DKIM-Schlüssel Ihrer Domain (standardmäßig Selektor `emailit`). Für Feedback-Loops zu Beschwerden kann eine zweite Signatur für `emailitmail.com` hinzukommen. |

Die DKIM-Signatur umfasst unter anderem die Header `From`, `To`, `Cc`, `Subject`, `Date`, `Message-ID`, `Reply-To`, MIME und `List-*`. Ändern Sie eine Nachricht nicht mehr, nachdem Emailit sie signiert hat, etwa durch eine Mailingliste, die den Betreff umschreibt, sonst schlägt die Signatur fehl.

## Header, die Emailit entfernt

| Header | Wann |
| --- | --- |
| `Bcc` | Immer, damit Bcc-Empfänger verborgen bleiben. |
| `Reply-To` | Wenn er dieselbe Adresse wie `From` nennt. Manche Spamfilter werten ein überflüssiges Reply-To negativ. |
| `Content-Disposition` | Auf oberster Ebene der Nachricht. Anhangsteile behalten ihren. |

Alles andere, einschließlich Ihrer eigenen `X-`-Header, wird unverändert zugestellt.

## Steuer-Header werden per SMTP nicht gelesen

> **Für Steuerung pro E-Mail die API verwenden:** Das SMTP-Relay liest keine `X-Emailit-*`-Header. Sie können Tracking, Metadaten, eine Vorlage oder einen Sendezeitpunkt nicht per Header festlegen. Das Tracking folgt den Einstellungen **Track loads** und **Track clicks** der Versanddomain unter **Email API → Domains**. Für die Steuerung pro E-Mail verwenden Sie die [E-Mail-API](/de/docs/email-api/send-email/).

Fügen Sie den Nachrichten, die Sie einreichen, keinen Header `X-Emailit-ID` hinzu. Emailit erkennt daran bereits verarbeitete Nachrichten, und bei einer Nachricht mit diesem Header entfallen das oben beschriebene Umschreiben der Header und die DKIM-Signatur.

## Die Antwort 250

Wenn das Relay eine Nachricht annimmt, listet seine Antwort auf das Ende von `DATA` die erzeugten E-Mail-IDs von Emailit auf, eine pro Empfänger:

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

- `2.0.0` ist der erweiterte Statuscode für Erfolg.
- Jede `em_`-ID ist dieselbe ID, die API, Weboberfläche und Webhooks für die E-Mail dieses Empfängers verwenden.
- Die Antwortzeile hat eine Längenbegrenzung. Passen nicht alle IDs hinein, was ab etwa 15 Empfängern der Fall ist, enthält die Antwort nur die erste ID. Die übrigen finden Sie unter **Email API → Emails** oder in Webhook-Events.

Die meisten Bibliotheken stellen die Antwort bereit. In Nodemailer ist es `info.response`. In PHPMailer rufen Sie nach `send()` die Methode `$mail->getSMTPInstance()->getLastReply()` auf. Speichern Sie die ID neben Ihrem eigenen Datensatz, damit Sie [Webhook-Events](/de/docs/webhooks/event-types/) zuordnen oder die E-Mail später mit [E-Mail abrufen](/de/docs/api-reference/emails/get/) nachschlagen können.

## List-Unsubscribe selbst hinzufügen

Emailit fügt `List-Unsubscribe`-Header nur zu E-Mails aus [Kampagnen](/de/docs/campaigns/) hinzu. Wenn Sie Newsletter oder andere Massen-E-Mails per SMTP senden, fügen Sie beide Header selbst zur Nachricht hinzu:

```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
```

Die `https`-URL muss ein `POST` mit dem Body `List-Unsubscribe=One-Click` annehmen und die Person ohne Bestätigungsschritt abmelden (RFC 8058). Emailit nimmt beide Header in die DKIM-Signatur auf, was Gmail und Yahoo für die Abmeldung mit einem Klick verlangen.

**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');
```

## Siehe auch

- [SMTP-Einstellungen](/de/docs/smtp/settings/)
- [Header und Metadaten](/de/docs/email-api/headers-and-metadata/) für Versände per API
- [Lexikon der E-Mail-Header](/de/docs/dictionary/email-headers/)
- [Öffnungs- und Klick-Tracking](/de/docs/tracking/)

---
Quelle: https://emailit.com/de/docs/smtp/headers/
