• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] SmtpJS - erhalte keine E-Mails vom Kontaktformular

XirLion

Mitglied
Guten Abend,

ich habe ein Problem mit "SmtpJS" - nach dem Absenden des Kontaktformulars kommen keine E-Mails bei mir an, woran kann das liegen? Meine Mailadresse habe ich bereits bei SmtpJS verifiziert. Das Kontaktformular wird auch abgeschickt, aber ankommen tut nichts . . .

Kann mir jemand sagen, was ich falsch mache?

HTML:
<div class="kontakt-box-2">
                      <form method="post" class="kontaktformular">
                        <ol>
                          <li><input type="text" id="name" placeholder="Vor- und Nachname*" required></li>
                          <li><input type="text" id="straße" placeholder="Straße und Hausnummer"></li>
                          <li><input type="text" id="plz" placeholder="PLZ">
                              <input type="text" id="ort" placeholder="Ort"></li>
                          <li><input type="text" id="telefon" placeholder="Telefon-/Mobilfunknummer"></li>
                          <li><input type="email" id="email" placeholder="E-Mail Adresse*" required></li>
                        </ol>
                          <p class="time">Reisezeitraum:
                          <input type="date" id="date1">-<input type="date" id="date2">
                          </p>
                          <table class="kontakt-option">
                                <tr>
                                  <th>
                                    <p>Erw.:
                                    <select type="text" id="erw" name="Erw">
                                      <option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>
                                    </select>
                                    </p>
                                  </th>
                                  <th>
                                    <p>Kinder:
                                    <select type="text" id="kinder" name="Kinder">
                                      <option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>
                                    </select>
                                    </p>
                                  </th>
                                </tr>
                          </table>
                          <textarea id="nachricht" rows="4" placeholder="Ihre Nachricht..."></textarea>
                          <p class="datenschutz-check">
                            <input type="checkbox" id="checkbox" name="datenschutz" value="Die Daten dürfen zur Bearbeitung der Anfrage verwendet werden" required>
                            Mit dem Absenden des Formulars erklären Sie sich damit
                            einverstanden, dass ich Ihre Daten zur Bearbeitung der
                            Anfrage verwenden darf.<br>
                            <br>
                            Weitere Informationen können Sie unter <a href="datenschutz.html">Datenschutz</a> nachlesen.
                          </p>
                          <input id="submit" onclick="sendmail(); reset(); return false;" type="submit" name="submit" value="ANFRAGE SENDEN"/>
                        </form>
                    </div>

Javascript:
function sendmail(){
  let name = document.getElementById("name").value;
  let straße = document.getElementById("straße").value;
  let plz = document.getElementById("plz").value;
  let ort = document.getElementById("ort").value;
  let telefon = document.getElementById("telefon").value;
  let email = document.getElementById("email").value;
  let date1 = document.getElementById("date1").value;
  let date2 = document.getElementById("date2").value;
  let erw = document.getElementById("erw").value;
  let kinder = document.getElementById("kinder").value;
  let nachricht = document.getElementById("nachricht").value;
  let checkbox = document.getElementById("checkbox").value;

  let body = "Vor- und Nachname:" + name + "</br> Straße und Hausnummer:" + straße + "</br> PLZ:" + plz + "Ort:" + ort + "</br> Telefon-/Mobilfunknummer:" + telefon + "</br> E-Mail Adresse:" + email + "</br> Reisezeitraum" + date1 + "-" + date2 + "</br> Erw.:" + erw + "Kinder:" + kinder + "</br> Nachricht:" + nachricht + "</br> Checkbox:" + checkbox;

  Email.send({
  SecureToken : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
  To : '[email protected]',
  From : document.getElementById("email").value,
  Subject : "Ferienhaus - Kontaktformular",
  Body : body
  }).then(
  message => alert("Ihre Nachricht wurde erfolgreich abgeschickt.")
 );
}
 
Zuletzt bearbeitet:
Werbung:
nach dem Absenden des Kontaktformulars kommen keine E-Mails bei mir an, woran kann das liegen?

Javascript:
  Email.send({
  SecureToken : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
  From : document.getElementById("email").value,
  Subject : "Ferienhaus - Kontaktformular",
  Body : body
  }).then(
  message => alert("Ihre Nachricht wurde erfolgreich abgeschickt.")
 );
}
Ich vermisse in Email.send({ ... }) den Empfänger:
Javascript:
Zum Vergleich:
https://smtpjs.com/ schrieb:
Javascript:
Email.send({
    SecureToken : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
    To : '[email protected]',
    From : "[email protected]",
    Subject : "This is the subject",
    Body : "And this is the body"
}).then(
  message => alert(message)
);

Hinweis:
  1. Falls Dir serverseitig PHP zur Verfügung steht, nutze bitte aus Sicherheitsgründen z.B. PHPMailer!
  2. Andernfalls wundere Dich zukünftig nicht über inflationären Spam in Deiner Mailbox, denn
  3. Dieser öffentlich einsehbare JS-Code ist grob fahrlässig bis vorsätzlich eine Einladung für SpamBots!
 
Werbung:
ups hatte ich versehentlich rausgelöscht beim Einbetten hier, leider funktioniert es auch mit der Empfängermail nicht.
Okay... Deinen Post hast Du dahingehend nachträglich korrigiert.

Dann erläutere bitte, was es hier mit der Funktion reset() und dem Befehl return false auf sich hat?
HTML:
<input ... onclick="sendmail(); reset(); return false;" .../>
Im originalen SmtpJS-Code sind sie definitiv nicht enthalten.

Was sich hinter der Funktion reset() versteckt, ist für mich/uns anhand Deines gezeigten Codes nicht ersichtlich.

Und der Befehl return false unterdrückt grundsätzlich das Standardverhalten - sprich in Deinem Anwendungsfall werden beide darin aufgerufenen Funktionen sendmail() u. reset() überhaupt nicht ausgeführt.

Tja..., abschließend die große Preisfrage: Wie verhält es sich, wenn Du beides zu Testzwecken entfernst?
HTML:
<input ... onclick="sendmail()" .../>
 
Dann erläutere bitte mal, was es hier mit reset() und return false auf sich hat?
HTML:
onclick="sendmail(); reset(); return false;"
Im originalen SmtpJS-Code sind sie definitiv nicht enthalten.

Und wie verhält es sich, wenn Du sie zu Testzwecken entfernst?

Viele Beispielvideos auf YouTube benutzen diese Funktionen, bei denen hat es auch funktioniert, nur bei mir will es irgendwie nicht...

Wenn ich das richtig verstehe, wird durch "reset()" das Formular resettet und "return false" verhindert, dass nach dem Abschicken die Seite an den Anfang springt.

Der Befehl "sendmail()" reagiert auf die JS Funktion, wodurch der Body der Mail definiert wird, sobald man das Formular mit dem Button abschickt. Wenn ich diesen Befehl entferne, würden hierdurch womöglich alle Informationen nicht übersendet werden, die ich benötige.

Wenn dem JS Code noch "console.log(body);" hinzufüge, werden auch alle Daten richtig in der Konsole des Browsers ausgelesen, nur die Mail wird nicht übermittelt ...

Javascript:
function sendmail(){
  let name = document.getElementById("name").value;
  let straße = document.getElementById("straße").value;
  let plz = document.getElementById("plz").value;
  let ort = document.getElementById("ort").value;
  let telefon = document.getElementById("telefon").value;
  let email = document.getElementById("email").value;
  let date1 = document.getElementById("date1").value;
  let date2 = document.getElementById("date2").value;
  let erw = document.getElementById("erw").value;
  let kinder = document.getElementById("kinder").value;
  let nachricht = document.getElementById("nachricht").value;
  let checkbox = document.getElementById("checkbox").value;

  let body = "Vor- und Nachname:" + name + "</br> Straße und Hausnummer:" + straße + "</br> PLZ:" + plz + "Ort:" + ort + "</br> Telefon-/Mobilfunknummer:" + telefon + "</br> E-Mail Adresse:" + email + "</br> Reisezeitraum" + date1 + "-" + date2 + "</br> Erw.:" + erw + "Kinder:" + kinder + "</br> Nachricht:" + nachricht + "</br> Checkbox:" + checkbox;
console.log(body);
  Email.send({
  SecureToken : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
  To : '[email protected]',
  From : document.getElementById("email").value,
  Subject : "Ferienhaus - Kontaktformular",
  Body : body
  }).then(
  message => alert("Ihre Nachricht wurde erfolgreich abgeschickt.")
 );
}

Habe die "onclick="sendmail(); reset(); return false;"" auch einmal entfernt und ausprobiert, doch erhalte ich danach noch immer keine Mail.
 
Habe die "onclick="sendmail(); reset(); return false;"" auch einmal entfernt und ausprobiert, doch erhalte ich danach noch immer keine Mail.
Klar, sendmail() ist der Bestandteil des funktionstüchtigen Scripts, damit Dich überhaupt eine Mail erreicht!

Also nochmal:
HTML:
<input ... onclick="sendmail()" .../>
 
Werbung:
Hinweis:
  1. Falls Dir serverseitig PHP zur Verfügung steht, nutze bitte aus Sicherheitsgründen z.B. PHPMailer!
  2. Andernfalls wundere Dich zukünftig nicht über inflationären Spam in Deiner Mailbox, denn
  3. Dieser öffentlich einsehbare JS-Code ist grob fahrlässig bis vorsätzlich eine Einladung für SpamBots!
Hierauf bist Du bislang überhaupt nicht eingegangen, ob Dir PHP zur Verfügung steht!

Denn wie ich schon darauf hingewiesen habe, bietet der JS-Code ein offenes (Scheunen)Tor für SpamBots, Deine Mailbox unerwünscht zu füllen!
 
Also nochmal:
HTML:
<input ... onclick="sendmail()" .../>
Soeben ausprobiert, auch ohne Erfolg.

Im Marketing Board von "elasticemail.com" welches mit "SmtpJS" zusammenarbeitet, ist auch nichts zu sehen, dass Mails ankommen.

FireShot Capture 245 - Email Marketing - Dashboard - app.elasticemail.com.png

Hierauf bist Du bislang überhaupt nicht eingegangen, ob Dir PHP zur Verfügung steht!
PHP steht mir zur Verfügung, habe den PHPMailer auch schon genutzt. Wollt gern eine andere Lösung probieren.
 
PHP steht mir zur Verfügung, habe den PHPMailer auch schon genutzt. Wollt gern eine andere Lösung probieren.
Das steht Dir natürlich frei - aber bitte im Eigeninteresse nicht auf JavaScript-Basis!

Beachte / Bedenke: JS-Code ist immer und jederzeit für alle(!) frei zugänglich und einsehbar - und somit in diesem Script auch Deine darin hinterlegte Mail-Adresse!

Für SpamBots eine großzügige Einladung, diese zu mißbrauchen, damit zukünftig Deine Mailbox inflationär zugemüllt wird!
 
Werbung:
Zurück
Oben