> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration von Inxmail

> Transaktionsmails wie Bestellbestätigungen über Inxmail Commerce versenden, je E-Mail-Typ einzeln umstellbar.

Bestellbestätigungen, Versandbestätigungen und Passwortmails werden erwartet und deshalb geöffnet. Wer diese Aufmerksamkeit nutzen will, braucht einheitliches Design und belastbare Zahlen zu Öffnungen und Klicks. Inxmail Commerce übernimmt dafür Gestaltung und Versand, während die Daten weiterhin aus dem Shop kommen.

Die Umstellung erfolgt je E-Mail-Typ einzeln. Für jeden Typ entscheiden Sie, ob er weiter über das E-Mail-System von WEBSALE läuft oder über Inxmail.

## Wie der Versand abläuft

Am Beispiel der Bestellbestätigung:

1. Nach der Bestellung sendet der Shop die vorab festgelegten Daten der Bestellung an Inxmail.
2. Inxmail setzt diese Daten in das dort hinterlegte E-Mail-Template ein und versendet die E-Mail an den Käufer.

Schlägt der Versand fehl, versucht es der Shop erneut. Der Abstand zwischen den Versuchen ist von WEBSALE konfigurierbar.

> [!WARNING]
>
> Bleibt der Versand endgültig erfolglos, muss der Händler eingreifen. Diese Aufgabe fällt an und muss jemandem gehören, sonst bleiben Bestellbestätigungen unbemerkt liegen. Wie das Eingreifen abläuft, steht im letzten Abschnitt.

## Welche E-Mails über Inxmail laufen können

| E-Mail | Abschnitt in der `shop.config` |
| - | - |
| Begrüßungs-E-Mail | `RegistrationMail` |
| Bestellbestätigung | `CustomerMail` |
| Neukundenanmeldung bestätigen | `NewCustomerDoubleOptInMail` |
| Änderung der E-Mail-Adresse bestätigen | `ChangeEmailDoubleOptInMail` |
| E-Mail-Adresse freiwillig bestätigen | `CustomerVoluntaryDoubleOptInMail` |
| Konto löschen bestätigen | `DeleteAccountDoubleOptInMail` |
| Passwort neu setzen | `SetPasswordMail` |
| Uploadlink verschicken | `SendUploadLinkMail` |
| Generischer E-Mail-Versand | `GenericEmails` |
| Produkt weiterempfehlen | `ProdRecmdMail` |
| Newsletter-Anmeldung im Bestellablauf | `+Newsletter` |

E-Mails im Zusammenhang mit INQUIRY-Formularen laufen über die Konfiguration des Formulars.

Wegweiser: [Formulare für Kundenanfragen](https://dokumentation.websale.de/v8s/formulare-fuer-kundenanfragen/formulare-fuer-kundenanfragen.md)

## Einrichten

### Vorbereitung

Klären Sie zuerst mit Inxmail Commerce, welche der dortigen Leistungen Sie nutzen wollen, und geben Sie diesen Umfang an WEBSALE weiter. Nur so lässt sich vorab feststellen, ob die Schnittstelle alles abbilden kann, was Sie vorhaben. Die Einstellungen auf der Inxmail-Seite nehmen Sie ebenfalls vorab vor.

### Schritt 1: Freischaltung

Die Funktion muss von WEBSALE für Ihre Shop-ID eingerichtet werden. Dafür werden drei Angaben gebraucht:

* Key
* Secret
* URL

Haben Sie bei Inxmail einen eigenen Testzugang beantragt, geben Sie auch dessen Zugangsdaten weiter.

### Schritt 2: Die shop.config anpassen

Für jede E-Mail, die über Inxmail laufen soll, wird der zugehörige Abschnitt ergänzt.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<CustomerMail>
   ...
   Allow               = yes
   ExternMailTemplate  = customer_mail.inxmail
   UseExternMailSystem = InxMail_Test
   ...
</CustomerMail>
```

| Parameter | Bedeutung |
| - | - |
| `ExternMailTemplate` | Name des Templates, das die Daten für Inxmail zusammenstellt |
| `UseExternMailSystem` | `InxMail_Test` für die Testphase, `InxMail` für den Produktivbetrieb |

Bei INQUIRY-Formularen steht `InxMail_Test` nicht zur Verfügung. Verwenden Sie für die Testphase eine eigene `inquiry-cfg`.

### Schritt 3: Die E-Mail-Templates anlegen

Je E-Mail-Typ entsteht ein eigenes Template in Ihrem Template-Verzeichnis. Die Übergabe erfolgt als JSON, das Template baut also ein JSON-Objekt auf. Welche Angaben darin stehen müssen, entnehmen Sie der Dokumentation von Inxmail.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "event": "neworder",
  "payload":
  {
    "Customer":
    {
      "Id": "~A-Number~",
      "Email": "~A-EMail~"
      {!ST-KnownCustomer},"IsNewCustomer": true{/!ST-KnownCustomer}
    },
    "Order":
    {
      "Id": "~WS-OrderNumber~",
      "Date": "~WS-OrderDate~ ~WS-OrderTime~"
    },
    "Items":
    [
      {@BASKET-PR-Data}
        {DC-CompareDigitGT($BASKET-PR-Position$,1)},{/DC-CompareDigitGT($BASKET-PR-Position$,1)}
        {
          "Sku": "~BASKET-PR-Number~",
          ~DC-FP1_set($BASKET-PR-Name$)~
          "Name": "~DC-FP1_jsonencoding~",
          "Price": ~BASKET-PR-TechnicalSum~,
          "Currency": "~WS-Currency~"
        }
      {/@BASKET-PR-Data}
    ]
  }
}
```

> [!WARNING]
>
> Beträge gehören in ein technisches Format, also ohne Tausendertrennzeichen und mit Punkt als Dezimaltrenner. Der formatierte Preis aus dem Shop macht das JSON ungültig, sobald ein Betrag vierstellig wird.

Produktnamen können Anführungszeichen und Umlaute enthalten und müssen deshalb über `DC-FP1_jsonencoding` laufen. Ohne diesen Schritt zerbricht ein einziges Anführungszeichen im Produktnamen die ganze Übergabe.

Auf diesen Templates sind alle Tags erlaubt, die auch auf den gewöhnlichen E-Mail-Templates zur Verfügung stehen, dazu eigene Tags für externe Mailsysteme.

Referenz: [DC-FPX\_jsonencoding](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md#die-tags-im-uberblick) · MAIL-Tags

Wegweiser: [E-Mail-Benachrichtigungen](https://dokumentation.websale.de/v8s/e-mails/e-mail-benachrichtigungen-ueberblick.md) · [Daten mit externen Systemen austauschen](https://dokumentation.websale.de/v8s/externe-dienste/daten-mit-externen-systemen-austauschen.md)

#### PDF-Dateien übergeben

Für Anhänge gibt es drei Wege:

| Weg | Wofür |
| - | - |
| statische PDF-Datei base64-codiert als fester Text | ein Anhang, der sich nie ändert, beispielsweise die Widerrufsbelehrung |
| fertig erzeugter base64-Code | Dateien, die als statischer Anhang konfiguriert sind |
| HTML zwischen zwei Markierungen | die Schnittstelle erzeugt daraus selbst ein PDF |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"attachments":
[
  {@MAIL-FileAttachment}
    {
      "filename": "~MAIL-FileAttachment_Name~",
      "content-type": "application/pdf",
      "content": "~MAIL-FileAttachment_ContentB64~"
    },
  {/@MAIL-FileAttachment}
  {@MAIL-HTMLAttachment}
    {
      "filename": "~MAIL-HTMLAttachment_Name~",
      "content-type": "application/pdf",
      "content": "WEBSALE-EXTMAIL-HTML2PDFB64::~MAIL-HTMLAttachment_ContentB64~::WEBSALE-EXTMAIL-HTML2PDFB64"
    }
  {/@MAIL-HTMLAttachment}
]
```

Der Inhalt zwischen `WEBSALE-EXTMAIL-HTML2PDFB64::` und `::WEBSALE-EXTMAIL-HTML2PDFB64` wird von der Schnittstelle in ein PDF umgewandelt. Damit erzeugen Sie beispielsweise eine Rechnung aus einem HTML-Template, ohne ein eigenes PDF-Werkzeug einzusetzen.

Referenz: [MAIL-FileAttachment\_ContentB64](https://dokumentation.websale.de/v8s/referenz/tags/mail-externe-mailsysteme.md#die-tags-im-uberblick) · [MAIL-HTMLAttachment\_ContentB64](https://dokumentation.websale.de/v8s/referenz/tags/mail-externe-mailsysteme.md#die-tags-im-uberblick)

### Schritt 4: Den Versand testen

Rufen Sie den Shop im allgemeinen Testmodus auf, lösen Sie die jeweilige E-Mail aus und prüfen Sie, ob sie ankommt und inhaltlich stimmt.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?test=on
```

Nach den Tests schalten Sie den Testmodus wieder ab.

Wegweiser: [Testmodi des Shops ein- und ausschalten](https://dokumentation.websale.de/v8s/domains/testmodi-des-shops-ein-ausschalten.md)

### Schritt 5: Liveschalten

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<CustomerMail>
   ...
   UseExternMailSystem = InxMail
   ...
</CustomerMail>
```

Haben Sie mit einem eigenen Testzugang bei Inxmail gearbeitet, wenden Sie sich nach den Tests an Ihren WEBSALE Ansprechpartner. WEBSALE stellt dann auf die Zugangsdaten des Produktivzugangs um.

## Eingreifen im Fehlerfall

Zum Feature gehört ein eigener FTP-Zugang auf ein Fehlerverzeichnis mit dieser Struktur:

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
/errors
/spool
/log
```

| Verzeichnis | Inhalt |
| - | - |
| `/errors` | je fehlgeschlagenem Aufruf eine Datei mit den Daten, die gesendet werden sollten |
| `/log` | je Tag eine Datei `JJJJMMTT.log` mit allen Meldungen, auch denen von Inxmail |
| `/spool` | Dateien, die erneut übergeben werden sollen |

So arbeiten Sie einen Fehler ab: Die betroffene Datei in `/errors` suchen, die zugehörige Meldung im Log nachlesen, die Daten korrigieren und die Datei nach `/spool` verschieben. Alles in `/spool` wird erneut an Inxmail übergeben. Scheitert es wieder, wandert die Datei zurück nach `/errors`.

Die Logeinträge sind JSON-Objekte. Die Logs werden höchstens sechs Monate vorgehalten und danach automatisch gelöscht.

Über eine REST-Schnittstelle lässt sich die Anzahl der Fehler der letzten Minuten abfragen. Damit lässt sich eine Überwachung aufbauen, statt das Verzeichnis von Hand im Blick zu behalten.

## Verwandte Themen

* Wegweiser: E-Mail-Benachrichtigungen
* Wegweiser: [Formulare für Kundenanfragen](https://dokumentation.websale.de/v8s/formulare-fuer-kundenanfragen/formulare-fuer-kundenanfragen.md)
* Wegweiser: [Daten mit externen Systemen austauschen](https://dokumentation.websale.de/v8s/externe-dienste/daten-mit-externen-systemen-austauschen.md)


## Related topics

- [Externe Dienste: Übersicht](https://dokumentation.websale.de/v8s/externe-dienste/externe-dienste.md)
- [Integration von econda](https://dokumentation.websale.de/v8s/integration-von-econda/integration-von-econda.md)
- [Integration von FINDOLOGIC](https://dokumentation.websale.de/v8s/externe-dienste/integration-von-findologic.md)
- [Integration von FACT-Finder](https://dokumentation.websale.de/v8s/integration-von-fact-finder/integration-von-fact-finder.md)
- [MAIL- (Externe Mailsysteme)](https://dokumentation.websale.de/v8s/referenz/tags/mail-externe-mailsysteme.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.