Empfänger im Web Formular vorgeben

Letzte Aktualisierung am 25.10.2025, 23:10:26 Uhr

Im Forum des Herstellers NoSpamProxy (NSP) des gleichnamigen Produkts gibt es einen Beitrag Landingpage für Dateiupload für Externe Absender. Und zwar bietet das Modul Web Portal  mit dem Parameter „Secure web emails“ die Möglichkeit das Formular ohne Einladungslink zu verwenden.

Damit verbunden gibt es im besagten Beitrag im Forum mehrfach den Wunsch, den Empfänger vorzudefinieren. Umso den Empfänger dem Nutzer vorzugeben. Damit verbunden auch Tippfehler bei der E-Mail-Adresse zu vermeiden.

in diesem Beitrag beschreibe ich, wie die Empfängeradresse vordefiniert werden kann. Optional kann die Empfängeradresse mithilfe von Parametern auch dynamisch eingetragen werden.

Voraussetzungen

In diesem Abschnitt beschreibe ich die Voraussetzungen für die Umsetzung:

  • Das Web Portal von NSP läuft ausschließlich auf einem Windows Server. Dort wird der Webserver Internet Information Server (IIS) verwendet.
  • Ein Linux Server mit Debian/Ubuntu, auf welchen der Webserver Nginx als Reverse Proxy dient.
  • Ein FQDN über welchen das Web Portal später auf dem Nginx erreichbar ist.
  • Für den oben definierten FQDN ein SSL-Zertifikat von eine öffentlichen CA (z.B. Lets Encrypt).

Netzwerkplan

In diesem Abschnitt ein Netzwerkplan, um das Ganze nicht nur in Textform, sondern auch visuell aufzubereiten.

Installation und Konfiguration

In diesem Abschnitt beschreibe ich die notwendige Installation und Konfigurationen in NoSpamProxy als auch Reverse Proxy.

Konfiguration von NoSpamProxy

Die Funktion „Secure web emails“ ohne Einladungslink zu verwenden ist standardmäßig deaktiviert. Diese kann über das NoSpamProxy Command Center aktiviert werden.

Die Änderung wird sofort wirksam. Gerne die Funktion prüfen. Die dazu notwendige Adresse wird unter Section angezeigt.

Installation des Reverse Proxy

Ich habe in meiner DMZ eine virtuelle Maschine (VM) mit Ubuntu Server 24.04 LTS bereitgestellt. Parallel dazu habe ich einen neuen DNS-Eintrag mit dem Namen nsplf01.lab03.daniel.wydler.eu angelegt. Dieser zeigt auf die IP-Adresse der VM.

Anschließend habe ich ein für den FQDN passendes SSL-Zertifikat direkt auf der VM abgerufen. Die Dateien habe ich auf der VM unter /etc/ssl/private/ abgelegt.

Aktualisierung der Paketquellen und Installation von nginx.

apt update && apt install nginx -y

Konfiguration des Reverse Proxy

Nach der Installation hat der Webserver eine „default“ Konfiguration. Diese kann gelöscht werden.

rm /etc/nginx/sites-enabled/default

Alle nachstehenden Konfigurationen basieren auf NoSpamProxy in der Version 15.5.0. Bei evtl. neueren Versionen, kann eine Anpassung der Konfiguration erforderlich sein.

Option 1

Anschließend wird für die Veröffentlichung des Web Portals unter dem oben definierten FQDN eine neue Konfiguration für nginx angelegt.

cat << EOF > /etc/nginx/sites-available/nsplf01.lab03.daniel.wydler.eu

server {
    # https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
    listen 443 ssl;

    # https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
    server_name nsplf01.lab03.daniel.wydler.eu;

    # https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
    ssl_certificate /etc/ssl/private/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;


    # https://nginx.org/en/docs/http/ngx_http_core_module.html#location
    location / {
    
        # https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
        proxy_pass https://nsplf01a.lab03.daniel.wydler.eu;

        # 
        # https://nginx.org/en/docs/http/ngx_http_sub_module.html
        sub_filter_once on;
        sub_filter_types "text/html";

        sub_filter 'id="Recipient" name="Recipient" type="email" value=""' $email_recipient;
    }
}

# Zuweisungen von Variable in der URI zu Empfänger E-Mailadresse
# https://nginx.org/en/docs/http/ngx_http_map_module.html#map
map $request_uri $email_recipient {
    ~^\/enqsig\/mail\/new\?test1$ 'id="Recipient" name="Recipient" type="email" value="test1@test1.de" readonly';
    ~^\/enqsig\/mail\/new\?test2$ 'id="Recipient" name="Recipient" type="email" value="test2@test2.de" readonly';

    default 'id="Recipient" name="Recipient" type="email" value=""';
}

EOF

Ab der Zeile 32 wird definiert, mit welchem Parameter in der URI die dazugehörige E-Mail-Adresse in das Feld des Empfängers eingetragen wird.

In diesem Beispiel gibt es zwei Parameter und damit Zuweisungen:

Name des Parameters E-Mail-Adresse
test1 test1@test1.de
test2 test2@test2.de

Zusätzlich wird das Eingabefeld schreibgeschützt. Dies wird über den Parameter readonly (siehe Zeile 33 und 34) sichergestellt.

Die Änderungen speichern und die Konfigurationsdatei neu laden.

sudo service nginx reload
Ruft man das Formular ohne Parameter aus, so wird nach wie vor der Empfänger nicht vordefiniert.
Fügt man an das Ende der URI den Parameter „test1“ an, wird die E-Mail-Adresse test1@test1.de eingetragen.
Fügt man an das Ende der URI den Parameter „test2“ an, wird die E-Mail-Adresse test2@test2.de eingetragen.

Option 2

Es ist möglich den Text und Eingabefeld der E-Mail-Adresse des Empfängers vollständig ausblenden zu lassen. Nachstehend die Konfiguration im nginx.

cat << EOF > /etc/nginx/sites-available/nsplf01.lab03.daniel.wydler.eu
server {
        # https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
    listen 443 ssl;

        # https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name nsplf01.lab03.daniel.wydler.eu;

        # https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
    ssl_certificate /etc/ssl/private/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;


        # https://nginx.org/en/docs/http/ngx_http_core_module.html#location
    location / {

                # https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
        proxy_pass https://nsplf01a.lab03.daniel.wydler.eu;

                #
                # https://nginx.org/en/docs/http/ngx_http_sub_module.html
        sub_filter_once on;
        sub_filter_types "text/html";

        sub_filter '<label for="Recipient">To</label>' '';
        sub_filter 'id="Recipient" name="Recipient" type="email" value=""' $email_recipient;
    }
}

# Zuweisungen von Variable in der URI zu Empfänger E-Mailadresse
# https://nginx.org/en/docs/http/ngx_http_map_module.html#map
map $request_uri $email_recipient {
    ~^\/enqsig\/mail\/new\?test1$ 'id="Recipient" name="Recipient" type="email" value="test@test.de" readonly hidden';
    ~^\/enqsig\/mail\/new\?test2$ 'id="Recipient" name="Recipient" type="email" value="test2@test2.de" readonly hidden';

    default 'id="Recipient" name="Recipient" type="email" value=""';
}
EOF

Die Änderungen speichern und die Konfigurationsdatei neu laden.

sudo service nginx reload

Nachstehend ein Beispiel des Web Formulars, wenn die Empfänger nicht angezeigt wird.

Viel Spaß beim Ausprobieren. 🙂

Abonnieren
Benachrichtige mich bei
0 Kommentare
neueste
älteste
Inline Feedbacks
View all comments