Zum Hauptinhalt springen

Wie richte ich den Import per E-Mail für die Online-Buchung ein?

Wie richte ich den Import per E-Mail für die Online-BuchungMM ein?

Standardmäßig werden Anfragen und Bestellungen der Online-Buchung direkt in Bp Event importiert. Alternativ können die Daten zunächst per E-Mail übermittelt und erst nach einer Prüfung durch einen Anwender importiert werden. Der E-Mail-Import eignet sich, wenn der Bp Event Webserver nicht öffentlich erreichbar sein soll oder wenn eingehende Anfragen und Bestellungen vor der Anlage in Bp Event kontrolliert werden sollen.

Beim E-Mail-Import sendet die WebApp die erfassten Daten an einen Mailer auf einem PHP-fähigen Webserver. Dieser versendet:

  • eine Importmail an die festgelegte Importadresse,
  • eine kurze Eingangsbenachrichtigung an den Besteller.

Die Importmail enthält eine lesbare Vorschau der übermittelten Angaben. Der Anwender prüft die Daten in Bp Event und entscheidet anschließend, ob der Import gestartet wird.

Die vollständige Anfrage- oder Bestellbestätigung wird erst nach dem erfolgreichen Import aus Bp Event versendet. Der E-Mail-Import wird betriebsweit aktiviert und gilt anschließend für alle Online-Buchungs-Apps des Betriebs.

Die Einrichtung auf dem externen Webserver erfolgt durch den Kunden beziehungsweise dessen technischen Dienstleister. Dazu gehören insbesondere:

  • Installation und Konfiguration,
  • Anpassung an die Server- und Mailumgebung,
  • Absicherung des Endpunkts,
  • Überwachung des laufenden Betriebs,
  • Pflege und Aktualisierung der produktiven Dateien.

Kundenspezifisch angepasste Mailer-Dateien sind nicht Bestandteil des Standardsupports.

Die Einrichtung des externen Hosts oder der Dateisynchronisation kann alternativ als gesonderte, kostenpflichtige Dienstleistung bei den IT-Services von Bankettprofi beauftragt werden.

  • Wählen Sie den Webserver für die WebApp
  • Das Standardszenario der Online-Buchung stellt im Ordner Online-Buchung/mailer zwei technische Vorlagen bereit, um die Einrichtung des E-Mail-Imports zu erleichtern:

    1. mailer.php nimmt die von der WebApp übermittelten Daten entgegen und versendet die Importmail sowie die kurze Eingangsbenachrichtigung an den Besteller.
    2. mailer.css enthält die Gestaltung der versendeten E-Mail-Inhalte.

    Die Dateien  sind jedoch NICHT als dauerhaft verwaltete Kundeninstallation vorgesehen, weil sie bei einem Szenario-Update überschrieben werden. Sie können übernommen oder durch eine eigene kompatible Umsetzung ersetzt werden.

    Kopieren Sie die Vorlagendateien vor der Anpassung und bearbeiten Sie ausschließlich die produktive Kopie. Verwenden Sie für die produktive Installation einen eigenen Dateinamen oder einen separaten Ordner, beispielsweise:

    Online-Buchung/mailer/customer-mailer.php
    Online-Buchung/mailer/customer-mailer.css

    Alternativ setzen Sie eine vollständig eigene kompatible Mailer-Lösung ein. Eine eigene Implementierung muss insbesondere:

    • die von der WebApp übermittelten Daten annehmen
    •  eine Importmail im erwarteten Format erzeugen,
    • den Importjob WebApp_Online-Buchung_Import_00_Transaktion angeben,
    • die für den Import benötigten Daten unverändert übermitteln,
    • die kurze Eingangsbenachrichtigung an den Besteller versenden.
  • Installieren Sie PHPMailer-Bibliothek

    Die PHPMailer-Bibliothek ist nicht Bestandteil der Online-Buchung und muss zusätzlich auf dem externen Webserver bereitgestellt werden. Verwenden Sie die Version, die für die aktuelle Mailer-Vorlage geprüft und angegeben ist.

    Installieren Sie den PHPMailer mit oder ohne Composer:

    1. Wenn Composer verfügbar ist, installieren Sie die vorgesehene PHPMailer-Version darüber. Composer stellt alle benötigten Dateien vollständig im Ordner vendor bereit und dokumentiert die verwendete Version.
    2. Alternativ laden Sie den passenden PHPMailer-Release aus dem offiziellen PHPMailer-Projekt herunter.
      1. Kopieren Sie den vollständigen Ordner src sowie die zugehörige Lizenzdatei in das Verzeichnis der produktiven Mailer-Datei. Verwenden Sie nur Dateien aus demselben Release und mischen Sie keine unterschiedlichen PHPMailer-Versionen.

    Composer muss nicht auf dem produktiven Webserver installiert sein. Die Bibliothek kann auf einem anderen System vorbereitet und anschließend vollständig auf den externen Host übertragen werden.

    Aktualisieren Sie PHPMailer nicht ungeprüft. Prüfen Sie nach einer Installation oder Aktualisierung den Versand der Importmail und der Eingangsbenachrichtigung mit einer Testbuchung.

  • Richten Sie den Mailversand ein

    Der Mailer unterstützt den Versand über SMTP oder Sendmail. Hinterlegen Sie die benötigten Einstellungen als serverseitige Umgebungsvariablen und nicht direkt in der PHP-Datei. Dadurch bleiben Zugangsdaten geschützt und die Mailer-Datei kann unabhängig von der Serverkonfiguration aktualisiert werden.

    1. Hinterlegen Sie die allgemeinen Einstellungen.
      Die folgenden Angaben werden unabhängig vom gewählten Mailtransport verwendet:

      Variable Bedeutung Standardwert
      MAIL_FROM_ADDRESS Absenderadresse der versendeten E-Mails -
      MAIL_IMPORT_RECIPIENT E-Mail-Adresse, an die die Importmail gesendet wird -
      MAIL_FROM_NAME Angezeigter Absendername Online-Buchung
      MAIL_IMPORT_SUBJECT Fester Betreff der Importmail wird automatisch erzeugt
      MAIL_CSS_FILE Vollständiger Pfad zur produktiven CSS-Datei mailer.css (neben der PHP-Datei)

      MAIL_FROM_ADDRESS und MAIL_IMPORT_RECIPIENT sind verpflichtend und müssen gültige E-Mail-Adressen enthalten.
      1. Wenn MAIL_IMPORT_SUBJECT nicht gesetzt wird, erzeugt der Mailer den Betreff automatisch aus der Sprache, dem Vorgangstyp und dem Titel der Online-Buchung.
      2. Wenn MAIL_CSS_FILE nicht gesetzt wird, erwartet der Mailer die Datei mailer.css im selben Verzeichnis wie die PHP-Datei.
      3. Wenn Sie eine eigene CSS-Datei verwenden, hinterlegen Sie deren vollständigen Pfad.
    1. Richten Sie den Versand entweder über SMTP oder über Sendmail ein. SMTP ist die empfohlene Variante.

    Variante 1: Richten Sie den Versand über SMTP ein

     Der Mailer meldet sich dabei mit einem Benutzerkonto an einem Mailserver an. Hinterlegen Sie zusätzlich folgende Einstellungen:

     

    Variable Bedeutung Standardwert
    MAIL_TRANSPORT Mailtransport smtp
    SMTP_HOST Name des SMTP-Servers -
    SMTP_USER Benutzername des SMTP-Kontos -
    SMTP_PASS Passwort des SMTP-Kontos -
    SMTP_PORT Port des SMTP-Servers 587
    SMTP_SECURE Verschlüsselung: starttls oder smtps starttls

    Die Vorlage unterstützt SMTP nur mit Anmeldung. SMTP_HOST, SMTP_USER und SMTP_PASS sind daher verpflichtend.
    Übliche Kombinationen sind:
    Port 587 mit starttls
    Port 465 mit smtps

    Die korrekten Verbindungsdaten erhalten Sie vom Betreiber des Mailservers. Verwenden Sie eine Absenderadresse, die für das verwendete SMTP-Konto zugelassen ist.
    Beispiel:
    MAIL_TRANSPORT=smtp
    MAIL_FROM_ADDRESS=Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
    MAIL_FROM_NAME=Online-Buchung
    MAIL_IMPORT_RECIPIENT=Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
    MAIL_CSS_FILE=/vollstaendiger/pfad/customer-mailer.css

    SMTP_HOST=smtp.example.com
    SMTP_PORT=587
    SMTP_USER=smtp-benutzer
    SMTP_PASS=GEHEIMES-PASSWORT
    SMTP_SECURE=starttls

    Variante 2: Richten Sie den Versand über Sendmail ein

    Verwenden Sie Sendmail nur, wenn auf dem externen Webserver bereits ein funktionsfähiger lokaler Mailversand eingerichtet ist. Die Einrichtung erfolgt durch die Kunden-IT oder den Hosting-Anbieter.

    Hinterlegen Sie folgende Einstellungen:
    MAIL_TRANSPORT=sendmail
    MAIL_FROM_ADDRESS=Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
    MAIL_FROM_NAME=Online-Buchung
    MAIL_IMPORT_RECIPIENT=Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
    MAIL_CSS_FILE=/vollstaendiger/pfad/customer-mailer.css
    Die Variablen SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS und SMTP_SECURE werden bei Sendmail nicht verwendet. Ein eigener Sendmail-Pfad muss nicht angegeben werden; PHPMailer verwendet die vorhandene Serverkonfiguration.

    1. Speichern Sie die Einstellungen sicher. Hinterlegen Sie die Umgebungsvariablen vorzugsweise:
      1. im Hosting-Control-Panel,
      2. in der Webserver- oder PHP-FPM-Konfiguration außerhalb des öffentlich erreichbaren Webverzeichnisses,
      3. bei Apache ersatzweise in einer geschützten .htaccess-Datei.

    Speichern Sie insbesondere das SMTP-Passwort nicht in mailer.php, mailer.css oder einer anderen öffentlich abrufbaren Datei.
    Bei nginx oder einer eigenen PHP-FPM-Konfiguration richtet die Kunden-IT die Variablen entsprechend der Serverumgebung ein. Nach Änderungen kann ein Neustart von PHP, PHP-FPM oder des Webservers erforderlich sein. Prüfen Sie anschließend, ob PHP die Variablen tatsächlich lesen kann.

  • Ermöglichen Sie die Kommunikation zwischen WebApp und Mailer

    Wenn WebApp und Mailer unter unterschiedlichen Domains bereitgestellt werden, muss der externe Webserver Anfragen von der Domain der WebApp zulassen. Richten Sie dafür eine passende CORS-Freigabe ein.

    Wichtig:

    • Geben Sie ausschließlich die tatsächlich verwendeten Domains der WebApp frei.
    • Verwenden Sie keine allgemeine Freigabe für beliebige Domains.
    • Lassen Sie die für die Übermittlung benötigten POST-Anfragen zu.
    • Stellen Sie sicher, dass erforderliche OPTIONS-Anfragen beantwortet werden.
    • Prüfen Sie, ob Firewall, Hosting-Schutz oder Sicherheitsmodule die Anfrage blockieren.

    Die konkrete Konfiguration richtet sich nach der verwendeten Webserver- und Mailer-Version. Die zulässigen Domains werden entsprechend der Konfiguration der bereitgestellten Mailer-Vorlage hinterlegt.
    Prüfen Sie die Kommunikation nach der Einrichtung mit einer Testbuchung.

  • Stellen Sie die WebApp extern bereit und synchronisieren Sie die Dateien

    Dieser Schritt ist nur erforderlich, wenn neben dem Mailer auch die WebApp auf einem externen Webserver betrieben wird.

    Übertragen Sie folgende Ordner vom Bp Event Webserver auf den externen Host:

    • Online-Buchung
    • bpWebApp

    Im Ordner Online-Buchung/Templates befinden sich die einzelnen Apps mit ihrer Logik und den aus Bp Event exportierten Daten.

    Nach Änderungen in Bp Event und einem erneuten Export müssen die aktualisierten Dateien auf den externen Host übertragen werden. Die Synchronisation kann manuell oder automatisiert erfolgen. Als mögliche technische Lösung kann beispielsweise WinSCP FileTransport verwendet werden.

    Stellen Sie sicher, dass:

    • die Verzeichnisstruktur erhalten bleibt,
    • neue und geänderte Dateien vollständig übertragen werden,
    • die WebApp anschließend über HTTPS erreichbar ist,
    • die produktive Mailer-Datei und ihre Konfiguration nicht überschrieben werden,
    • Übertragungsfehler protokolliert und geprüft werden.

    Die Einrichtung der Übertragung übernimmt die Kunden-IT. Alternativ können die IT-Services von Bankettprofi als gesonderte kostenpflichtige Dienstleistung beauftragt werden.

  • Hinterlegen Sie die Mailer-URL in Bp Event

    Die Importart wird in der Tabelle Betriebe im Feld URL für E-Mail-Import festgelegt.

    • Wenn das Feld leer ist, erfolgt standardmäßig der direkte Import.
    • Wenn eine Mailer-URL hinterlegt ist, werden die Daten aller Online-Buchungs-Apps dieses Betriebs per E-Mail übermittelt.

    Hinterlegen Sie die URL der produktiven Mailer-Datei.

    Beispiele:
    https://website-domain/Online-Buchung/mailer/customer-mailer.php
    oder bei einer passenden gemeinsamen Verzeichnisstruktur:
    ../../mailer/customer-mailer.php

    Verwenden Sie bevorzugt eine vollständige HTTPS-Adresse.
    Wechseln Sie zurück zum direkten Import, indem Sie das Feld „URL für E-Mail-Import“ leeren.

  • Richten Sie das Import-E-Mail-Konto in Bp Event ein

    Wenn in Bp Event noch kein geeignetes E-Mail-Empfangskonto eingerichtet ist, legen Sie zunächst den E-Mail-Server und das benötigte E-Mail-Konto an. (Wie richte ich E-Mails ein?)
    Die in der Mailer-Konfiguration hinterlegte Importadresse muss von Bp Event abgerufen werden können.
    Eine separate Aktivierung der E-Mail-Buchungsverarbeitung ist nicht erforderlich. Die Funktion steht mit dem entsprechenden Modul der Online-Buchung automatisch zur Verfügung.

  • Testen Sie die vollständige Einrichtung

    Führen Sie nach Abschluss der Einrichtung eine vollständige Testbuchung mit Testdaten und Test-E-Mail-Adressen durch. Prüfen Sie:

    1. Die WebApp kann die produktive Mailer-Datei erreichen.
    2. Die Importmail trifft an der festgelegten Importadresse ein.
    3. Der Besteller erhält die kurze Eingangsbenachrichtigung.
    4. Bp Event ruft die Importmail ab.
    5. In der Registerkarte HTML wird eine lesbare Vorschau angezeigt.
    6. Der Import kann über die eingebundene Aktion „WebApp_Online-Buchung_Import_00_Transaktion“ gestartet werden.
    7. Die Veranstaltung sowie die zugehörigen Adressen, Räume, Vorgänge und Artikel werden korrekt angelegt.
    8. Die zuständigen Anwender werden benachrichtigt.
    9. Der Besteller erhält nach dem Import die vollständige Anfrage- oder Bestellbestätigung.
    10. Gegebenenfalls vorgesehene Rechnungen werden korrekt erstellt und versendet.

    Hinweis: Die Importmail wird nicht automatisch bei der angelegten Veranstaltung archiviert oder abgelegt, sondern als gelesen markiert.

  • Prüfen Sie Fehler und Protokolle

    Prüfen Sie bei einer fehlgeschlagenen Übermittlung zunächst:

    • Erreichbarkeit der Mailer-URL
    • HTTPS-Zertifika
    • CORS-Freigabe bei unterschiedlichen Domains
    • PHP- und Webserverprotokoll
    • SMTP- beziehungsweise Mailserverprotokoll
    • Umgebungsvariablen
    • Absender- und Importadresse
    • Firewall und ausgehende SMTP-Verbindung
    • PHP-Version und erforderliche PHP-Erweiterungen
    • post_max_size
    • Dateirechte für PHP-, CSS- und PHPMailer-Dateien.

    Typische Meldungen:

    • Server-Konfiguration unvollständig
      Eine verpflichtende Umgebungsvariable fehlt oder die konfigurierte CSS-Datei ist nicht lesbar.
    • SMTP-Konfiguration unvollständig
      SMTP_HOST, SMTP_USER oder SMTP_PASS fehlt.
    • Mail-Konfiguration ungültig
      Eine E-Mail-Adresse, der SMTP-Port, die Verschlüsselung oder der Mailtransport ist ungültig.
    • Transaktions-ID nicht gefunden
      In den übermittelten Buchungsdaten fehlt die für den Import benötigte UUID.
    • Buchungsdaten konnten nicht übermittelt werden
      Der Mailserver konnte nicht erreicht werden oder hat die Importmail nicht angenommen. Weitere Informationen finden Sie im Serverprotokoll.
    • HTTP-Status 405
      Die Mailer-Datei wurde nicht mit der vorgesehenen POST-Anfrage aufgerufen.
  • Spätere Wartung der Mailer-Lösung

    Änderungen an den bereitgestellten Vorlagen werden nicht automatisch in die produktive Kundenlösung übernommen. Die Pflege kundenspezifisch angepasster Mailer-Dateien liegt im Verantwortungsbereich des Kunden beziehungsweise seines technischen Dienstleisters und ist nicht Bestandteil des Standardsupports.

    1. Prüfen Sie daher nach einem Szenario-Update, ob relevante Anpassungen vorliegen.
    2. Sichern Sie vor Änderungen die produktiven Dateien und übernehmen Sie Neuerungen kontrolliert in die eigene Implementierung.
    3. Aktualisieren Sie PHPMailer nur als vollständige, zusammengehörige Version und führen Sie anschließend eine Testbuchung durch.
Drucken