Wichtige Informationen für Hosteurope, Strato, IONOS, webgo und dogado Kunden!



Eventuell sind die Infos auch für weitere Hosting Provider relevant! Nutzen Sie gerne unsere Seite Hoster-Check.




1. IONOS: Ein E-Mail Versand über das Kontaktformular ist nicht möglich!?

Problem: Es erscheint eine Fehlermeldung, sobald der Nutzer auf den Senden-Button klickt. Der Grund ist, dass die E-Mail Server von IONOS seit dem 29.01.2024 gewisse Anforderungen an die Header-Informationen einer E-Mail (welche über ein PHP Script versandt wird) stellen. Mehr Informationen erhalten Sie auf dieser IONOS Seite.
Wir können Ihnen zwei Lösungen anbieten, wobei jede Lösung eine kleine Einschränkung hat.


Lösung 1


Vorteil

  • Es muss nur ein einziger Code-Abschnitt geändert werden

Nachteil

  • In der E-Mail Ansicht erscheint als Absender-Name die Serverbezeichnung von IONOS. (sh-117174969@eu.hosting-webspace.io) Beim Klick auf Antworten erscheint jedoch die korrekte E-Mail Adresse des Nutzers!


Lösung 2


Vorteil

  • Es erscheint in der E-Mail Ansicht als Absender-Name "E-Mail vom Kontaktformular". (also eindeutig formuliert!)

Nachteil(e)

  • Beim Klick auf Antworten muss die E-Mail Adresse des Nutzers erst aus dem E-Mail Inhalt kopiert werden.
  • Es müssen mehrere Codeabschnitte geändert werden. Also ein etwas erhöhter Aufwand.


  Lösung 1

Öffnen Sie die Datei kontakt.php


Suchen Sie nach diesem Codeabschnitt (zu finden unter "// header"):


// header
$header = "From: =?UTF-8?B?".base64_encode(stripslashes($fromName))."?= <".$fromMail.">".$eol;
$header .= "Reply-To: <".$fromMail.">".$eol;
$header .= "MIME-Version: 1.0".$eol;
if(is_array($attachments) && 0<count($attachments)){
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"";
}
else{
$header .= "Content-type: text/plain; charset=utf-8";
}

Ersetzen Sie den Codeabschnitt hiermit:


// header
$headers = 'From: $empfaenger' .base64_encode(stripslashes($fromName))."?= <".$fromMail.">".$eol; "\r\n" .
$header .= "Reply-To: <".$fromMail.">".$eol;
$header .= "MIME-Version: 1.0".$eol;
$header .= "X-Mailer: PHP/' . phpversion()".$eol;
if(is_array($attachments) && 0<count($attachments)){
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"";
}
else{
$header .= "Content-type: text/plain; charset=utf-8";
}

Bitte außerdem beachten: Es ist bei IONOS außerdem notwendig, eine Domain-eigene E-Mail Adresse (z.B. info@ihre-domain.com) zu verwenden, da IONOS nur E-Mail Adressen akzeptiert, die von der eigenen Domain stammen. Es darf keine Weiterleitungsadresse sein, sondern muss eine Domain-eigene E-Mail Adresse mit einem eigenen Postfach sein.


Löschen Sie ggf. den Cache und die Cookies (bzw. Websitedaten) in Ihrem Browser, nachdem Sie diese Änderung vorgenommen haben. Ansonsten kann es sein, dass die entsprechende Fehlermeldung, nach dem Klick auf den Senden-Button weiterhin erscheint. Nutzen Sie ggf. einen alternativen Browser, um die Funktionsfähigkeit des Kontaktformulars festzustellen.


Bis auf die korrekte Darstellung des Absender-Namens in der Webmail-Ansicht, funktioniert nun das Kontaktformular. Statt des Absender-Namens wird gegenwärtig der Servername angezeigt. Sobald Sie allerdings auf die E-Mail klicken, können Sie dem Absender ganz normal antworten.

  Lösung 2

Öffnen Sie die Datei config.php


1. Ändern Sie den Inhalt der Variable $ihrname in "E-Mail vom Kontaktformular":

$ihrname = "E-Mail vom Kontaktformular";  // Ihr Name (zwischen den Anführungszeichen)

2. Fügen Sie unterhalb von $ihrname diese Variable ein und ersetzen Sie "Ihr Unternehmen" mit der gewünschten Bezeichnung.:

$kopie_an_absender = "Ihr Unternehmen";  // Ihr Name, falls Kopie an Kunde

3. Tragen Sie die folgenden SMTP Daten unter $smtp ein. Achten Sie darauf, die SMTP Funktion unter $smtp['enabled'] durch eine 1 zu aktivieren. Fügen Sie bei "user" die E-Mail Adresse ein, die bei IONOS registriert ist. Unter "password" geben Sie das Passwort von Ihrem IONOS E-Mail Account ein:

$smtp = array();

$smtp['enabled'] = 1; // Soll das Kontaktformular E-Mails über einen SMTP Server versenden? Ja = 1, Nein = 0

$smtp['host'] = 'smtp.ionos.de'; // Der Host, unter welchem der SMTP Server erreichbar ist. (bspw. smtp.gmail.com)

$smtp['user'] = 'email@ihre-domain.de'; // Der Benutzername, mit welchem Sie sich bei Ihrem SMTP Server authentifizieren. (kann u.U. die oben genannte E-Mail Adresse sein!)

$smtp['password'] = 'ihr-email-passwort-bei-ionos'; // Das Passwort, mit welchem Sie sich bei Ihrem SMTP Server authentifizieren.

$smtp['encryption'] = 'tls'; // Die Art der Verschlüsselung, die bei der Verbindung mit Ihrem SMTP Server verwendet wird: '', 'ssl' oder 'tls'

$smtp['port'] = 587; // Der TCP Port, unter welchem Ihr SMTP Server erreichbar ist.

$smtp['debug'] = 0; // Das Debuglevel (0 - 4)


Öffnen Sie die Datei kontakt.php


1. Ändern Sie den Codeabschnitt unter "// ---- send mail to admin" hiermit:


Achtung: Der nachfolgende Code weicht bei Ihnen minimal ab, sofern Sie eine Version ohne Betreffzeile nutzen. Entfernen Sie in diesem Fall "$betreff," (mit dem Komma!) in dem nachfolgenden Code.
// ---- send mail to admin
        if($smtp['enabled'] !== 0) {
            require_once __DIR__ . '/smtp.php';
            $success = SMTP::send(
                $smtp['host'],
                $smtp['user'],
                $smtp['password'],
                $smtp['encryption'],
                $smtp['port'],
                $empfaenger,
                $ihrname,
                $empfaenger,
                $betreff,
                $mailcontent,
                (2==$cfg['UPLOAD_ACTIVE'] ? array() : $uploadedFiles),
                $cfg['UPLOAD_FOLDER'],
                $smtp['debug']
            );

2. Ändern Sie den Codeabschnitt unter "// ---- send mail to customer" hiermit:

// ---- send mail to customer
            if($smtp['enabled'] !== 0) {
                SMTP::send(
                    $smtp['host'],
                    $smtp['user'],
                    $smtp['password'],
                    $smtp['encryption'],
                    $smtp['port'],
                    $empfaenger,
                    $kopie_an_absender,
                    $email,
                    "Ihre Anfrage",
                    $mailcontent,
                    array(),
                    $cfg['UPLOAD_FOLDER'],
                    $smtp['debug']
                );

3. Ändern Sie den Codeabschnitt unter "// header" hiermit:

// header
$headers = 'From: $empfaenger' .base64_encode(stripslashes($fromName))."?= <".$fromMail.">".$eol; "\r\n" .
$header .= "Reply-To: <".$fromMail.">".$eol;
$header .= "MIME-Version: 1.0".$eol;
$header .= "X-Mailer: PHP/' . phpversion()".$eol;
if(is_array($attachments) && 0<count($attachments)){
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"";
}
else{
$header .= "Content-type: text/plain; charset=utf-8";
}

Bitte außerdem beachten: Es ist bei IONOS außerdem notwendig, eine Domain-eigene E-Mail Adresse (z.B. info@ihre-domain.com) zu verwenden, da IONOS nur E-Mail Adressen akzeptiert, die von der eigenen Domain stammen. Es darf keine Weiterleitungsadresse sein, sondern muss eine Domain-eigene E-Mail Adresse mit einem eigenen Postfach sein.


Löschen Sie ggf. den Cache und die Cookies (bzw. Websitedaten) in Ihrem Browser, nachdem Sie diese Änderung vorgenommen haben. Ansonsten kann es sein, dass die entsprechende Fehlermeldung, nach dem Klick auf den Senden-Button weiterhin erscheint. Nutzen Sie ggf. einen alternativen Browser, um die Funktionsfähigkeit des Kontaktformulars festzustellen.


Hinweis: Bitte bedenken Sie, dass bei dieser Lösung statt der Absender Adresse des Nutzers, immer Ihre Empfänger Adresse (siehe config.php) als Antwort-Adresse im Mailprogramm angezeigt wird. Um dem Nutzer zu antworten, können Sie einfach auf die Mailadresse tippen, welche unter "E-Mail" im Mailinhalt erscheint oder die entsprechende E-Mail Adresse in das Empfänger-Feld einfügen.





2. Hosteurope, IONOS und webgo: Domain-eigene E-Mail Adresse verwenden


Bei den Hosting Anbietern Hosteurope, IONOS und webgo ist es notwendig, eine Domain-eigene E-Mail Adresse (z.B. info@ihre-domain.com) zu verwenden.

Es kann unter Umständen auch notwendig sein, die Domain-eigene E-Mail Adresse im entsprechenden Kundenbereich explizit für PHP Scripte anzulegen. (Insbesondere bei Hosteurope war diese Vorgehensweise vor einigen Jahren üblich.)





3. Hosteurope: Die zugestellte E-Mail des Nutzers kann nicht beantwortet werden, da die Absender-E-Mail Adresse unkenntlich ist?


Problem: Die zugestellte E-Mail kann nicht auf direktem Wege beantwortet werden, da die E-Mail Adresse des Nutzers im Empfänger-Feld eine seltsame Zeichenkette aufweist. Die E-Mail Adresse ist nicht direkt sichtbar.

Dieser "Fehler" kann auftreten, wenn der Webserver eine untypische Konfiguration des E-Mail Headers hat. (betrifft nach aktuellem Kenntnisstand den Hosting Anbieter Hosteurope) Es kann allerdings sein, dass auch weitere Hosting-Anbieter davon betroffen sind.

  Lösung

Öffnen Sie die Datei kontakt.php


Ersetzen Sie den Codeabschnitt unter "// header" hiermit:


// header
$header = "From: =?UTF-8?B?".base64_encode(stripslashes($fromName))."?= <".$fromMail.">".$eol;
$header .= ":";
$header .= "".$eol;
if(is_array($attachments) && 0<count($attachments)){
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"";
}
else{
$header .= "";
}



4. Hosteurope: Die Option "Kopie der Mail an den Absender" funktioniert nicht?!


Die Option "Kopie an den Absender" (siehe config.php, Zeile 45) kann bei dem Hosting Anbieter Hosteurope leider nicht verwendet werden, da die entsprechende Funktion serverseitig unterbunden wird. Hierfür gibt es leider keine Lösung.





5. Strato & dogado: Nachrichten von Nutzern, die eine Yahoo, iCloud, Hotmail, Gmail, T-Online oder AOL E-Mail Adresse in das Kontaktformular eintragen, werden nicht zugestellt - warum?


Problem: Sofern ein Nutzer eine Nachricht über das Kontaktformular senden möchte und eine Yahoo, iCloud, Hotmail, Gmail, T-Online oder AOL E-Mail Adresse in das Formular-Feld "E-Mail" einträgt, kommt die E-Mail bei der entsprechenden Empfänger Adresse (siehe config.php) nicht an.

Der Grund ist, dass die E-Mail Server von Strato und dogado (potentiell auch weitere Hosting-Anbieter!) die E-Mails abweisen, sofern die Absender-Domäne (vermeintlich) einen der genannten E-Mail Provider beinhaltet. Die Hosting-Provider berufen sich auf die DMARC Richtlinien. Mehr Informationen erhalten Sie auch auf der FAQ Seite von Strato: https://www.strato.de/faq/webshop/bounce-meldungen-bei-webshops/

  Lösung um sicherzustellen, dass die Nachrichten dennoch gesendet werden:

Suchen Sie in der Datei kontakt.php nach dem folgenden Codeabschnitt (zu finden unter "// ---- send mail to admin"):
// ---- send mail to admin
        if($smtp['enabled'] !== 0) {
            require_once __DIR__ . '/smtp.php';
            $success = SMTP::send(
                $smtp['host'],
                $smtp['user'],
                $smtp['password'],
                $smtp['encryption'],
                $smtp['port'],
                $email,
                $ihrname,
                $empfaenger,
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code


Ersetzen Sie die Variable "$email," mit "$empfaenger," . Es muss also so aussehen:
// ---- send mail to admin
        if($smtp['enabled'] !== 0) {
            require_once __DIR__ . '/smtp.php';
            $success = SMTP::send(
                $smtp['host'],
                $smtp['user'],
                $smtp['password'],
                $smtp['encryption'],
                $smtp['port'],
                $empfaenger,
                $ihrname,
                $empfaenger,
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code
                ####weiterer Code


Suchen Sie außerdem in der Datei kontakt.php nach dieser Zeile (ist direkt unterhalb des Codeabschnitts!):


$success = sendMyMail($email,

Ersetzen Sie die Zeile hiermit:


$success = sendMyMail($empfaenger,

Nun wird, statt der Absender Adresse des Nutzers, immer Ihre Empfänger Adresse (siehe config.php) als Antwort-Adresse im Mailprogramm angezeigt. Um dem Absender zu antworten, können Sie einfach auf die Mailadresse tippen, welche unter "E-Mail" im Mailinhalt erscheint.

Bekannte Fehlermeldungen in diesem Zusammenhang:
- failed: yahoo.de: 554 Message not allowed - Headers are not RFC compliant[291]
- Email rejected per DMARC policy for yahoo.de
- Set Reply-To-Header





  Beispiel - Responsives Formular Template 1

» Zur Download-Seite von Template 1
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 2

» Zur Download-Seite von Template 2
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 3

» Zur Download-Seite von Template 3
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 4

» Zur Download-Seite von Template 4
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 5

» Zur Download-Seite von Template 5
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 6

» Zur Download-Seite von Template 6
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 7

» Zur Download-Seite von Template 7
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 8

» Zur Download-Seite von Template 8
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 9

» Zur Download-Seite von Template 9
» Spamschutz-Optionen: Captcha, Zeitsperre, Bad Word Filter, (durchdachte) IP Sperre, Honeypot, Klick-Check & Linkblocker




  Beispiel - Responsives Formular Template 10

» Zur Download-Seite von Template 10
» Spamschutz-Optionen: Bad Word Filter, Honeypot, Captcha, (durchdachte) IP Sperre, Zeitsperre, Klick-Check & Linkblocker





  Beispiel - Responsives Formular Template 11

» Zur Download-Seite von Template 11
» Spamschutz-Optionen: Bad Word Filter, Honeypot, Captcha, (durchdachte) IP Sperre, Zeitsperre, Klick-Check & Linkblocker





  Beispiel - Responsives Formular Template 12

» Zur Download-Seite von Template 12
» Spamschutz-Optionen: Bad Word Filter, Honeypot, Captcha, (durchdachte) IP Sperre, Zeitsperre, Klick-Check & Linkblocker





  Beispiel - Responsives Formular Template 13

» Zur Download-Seite von Template 13
» Spamschutz-Optionen: Bad Word Filter, Honeypot, Captcha, (durchdachte) IP Sperre, Zeitsperre, Klick-Check & Linkblocker





  Beispiel - Responsives Formular Template 14

» Zur Download-Seite von Template 14
» Spamschutz-Optionen: Bad Word Filter, Honeypot, Captcha, (durchdachte) IP Sperre, Zeitsperre, Klick-Check & Linkblocker




» Weitere Templates finden Sie unter Download