Kontaktformular mit Bestätigungsmail?

Allgemeine Fragen
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Kopie an Absender

Wenn Du nun noch diese beiden Zeilen einfügst, dann kannst Du auch eine automatische Kopie an den Absender schicken und hast eine "Antwort an:" ("Reply to:") Funktion:

Code: Alles auswählen

 // Der Absender bekommt eine Kopie
 $mail->addCC($_POST["email"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email"]);

 // "Antworten an" den Absender der Nachricht setzen
 $mail->addReplyTo($_POST["email"], $_POST["name"]); 
Die könntest Du dann gleich unter "Absender und Empfänger" einfügen, also dann so:

Code: Alles auswählen

 // Absender und Empfänger
 $mail->setFrom("mail@example.com", "John Doe"); // Absender
 $mail->addAddress("jane@outlook.com", "Jane Foo"); // Empfänger 
 
 // Der Absender bekommt eine Kopie
 $mail->addCC($_POST["email"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email"]);

 // "Antworten an" den Absender der Nachricht setzen
 $mail->addReplyTo($_POST["email"], $_POST["name"]); 

ACHTUNG!

Bitte lies auch meinen Beitrag zum Thema SMTP und den E-Mail-Adressen auf der vorherigen Seite, denn natürlich darf die Empfänger-Adresse auch eine andere als die SMTP Adresse vom Absender sein:

viewtopic.php?p=16232#p16232


Tipp:

Sichere Dir dann Dein fertiges Mailscript nochmals, falls Du es irgendwann verlierst oder erneut einen Fehler machen solltest. Am besten auch auf einer externen Festplatte oder einem Stick.
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Hallo Tommy,
naja - ich fang ja eigentlich gar nicht an mit dem coden, da ich das nur alle 2 Jahre mal brauche.
Das ist ja das Problem.
Auch wie jetzt, ich habe mal die Testseite wieder für mich ins Leben gerufen und einen mailscript2.php angelegt (Kopie von mailscript) habe im Formulat auch diesen Script eingetragen und überall die webmaster-adresse und auch mal eine andere vom Club.
Bekomme immer wieder die Fehlerseite.
Die Adressen existieren, das Login passt auch...
Das Mailscript von gestern funktioniert nach wie vor einwandfrei.
Ich werde mal ein bisschen "basteln" und versuchen rauszubekommen wieso das nicht geht...Denn so kann ich die Kopie an Absender ja nicht testen um die im Hauptscript einzubinden
P.S.:
Meine Daten am Rechner werden zyklisch auf einer NAS gespeichert :-)
Grüssle
Detlev
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Ich bin mal so frech und kopiere hier noch mal den Code in vom mailscript2, welches nicht funktioniert.
Das ist eine 1zu1 Kopie von dem funktionierenden mailscript, nur eben statt info@... Mailadresse die webmaster@... Mailadresse.
Das zugehörige Passwort wurde auch geändert und auch auf der Testseite auch der Verweis im Formular auf dieses Script.
https://www.kreuztalertanzclub-casino.d ... kttest.php
Was sehe ich hier wieder nicht?

Code: Alles auswählen

<?php
/*
 * mailscript.php versenden über SMTP
 * Version vom 21.07.2021
 * 
 * Erfolgreich getestet mit: PHPMailer Version: 6.5.0
 */

// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require "PHPMailer-master/src/Exception.php";
require "PHPMailer-master/src/PHPMailer.php";
require "PHPMailer-master/src/SMTP.php";

// Danke und Fehlerseite
$dankeSeite = "danke.html"; // Danke - Seite, die Mail wurde erfolgreich versandt.
$fehlerSeite = "fehler.html"; // Fehler - Seite, falls die Mail nicht versandt werden konnte.

// Betreff
// Jede E-Mail benötigt einen Betreff, da jedoch im Formular kein
// entsprechendes Feld gesetzt wurde, wird ein fester Betreff hinzugefügt.
$betreffEmail = "Kontaktformular Homepage KTC";


// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {

  // Zeitzone und das aktuelle Datum setzen
  date_default_timezone_set("Europe/Berlin");
  $datum = date("d.m.Y H:i");

  // HTML-Tags entfernen
  $_POST = array_map('strip_tags', $_POST);

  // Inhalt der E-Mail setzen
  $inhaltEmail = "Gesendet am: $datum Uhr
   Vorname: " . $_POST["vorname"] . "
   Nachname: " . $_POST["nachname"] . "
   E-Mail: " . $_POST["email1"] . "
   Phone: " . $_POST["phone"] . "

   Nachricht: " . $_POST["textarea"] . "
  ";

  // Instanz und Zeichenkodierung setzen
  $mail = new PHPMailer();
  $mail->CharSet = "UTF-8";

  // Servereinstellungen
  $mail->isSMTP(); // Senden mit SMTP
  $mail->Host = "send.one.com"; // Postausgangsserver (SMTP)
  $mail->SMTPAuth = true; // SMTP-Authentifizierung aktivieren
  $mail->Username = "webmaster@kreuztalertanzclub-casino.de"; // SMTP Benutzername
  $mail->Password = "xxxxxxxxx"; // SMTP Passwort
  $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Implizite TLS-Verschlüsselung aktivieren
  $mail->Port = 465; // Port - Postausgangsserver (SMTP)

 // Absender und Empfänger
 $mail->setFrom("webmaster@kreuztalertanzclub-casino", "Info KTC"); // Absender
 $mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger

  // Betreff und Body setzen
  $mail->Subject = $betreffEmail;
  $mail->Body = $inhaltEmail;

 // E-Mail versenden
 if ($mail->Send()) {
  header("Location: " . $dankeSeite);
 }
 else {
  header("Location: " . $fehlerSeite);
 }
}
?>
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Bei der Absender - Mail Adresse fehlt jetzt hinten das .de:

Code: Alles auswählen

$mail->setFrom("webmaster@kreuztalertanzclub-casino", "Info KTC"); // Absender
RICHTIG wäre:

Code: Alles auswählen

$mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

O Mist...bin ich blind.... Das gibt's doch nicht.
.
Muss ich nach der Arbeit testen.
Wenn das dann funktioniert gehe ich an die Kopie für den Absender.
Hoffentlich bin ich dafür nicht auch zu blöd...
Danke!
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Das ist mit Sicherheit der Fehler, den Du gerade hast.

Das schaffst Du ganz bestimmt - viel Erfolg :tu:

… und blöd sind nur Leute, die Probleme haben und dann nicht fragen :crying:


P.S.:

ich habe übrigens meine Tutorialseite mit einem ganz aktuellen Download vom PHPMailer v6.9.3 gerade etwas überarbeitet:

https://www.mobirise-tutorials.com/Kontakt-Formular.php

Das musst und brauchst Du jetzt aber nicht beachten.

Insgesamt ist nur wichtig zu wissen, dass PHP-Anwendungen immer gepflegt werden müssen und öfter mal Updates benötigen, damit diese auch mit den neuesten PHP-Versionen weiter einwandfrei funktionieren.
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Habe das fehlende .de ergänzt und der Fehler ist immer noch da.
Ich werde noch irre....

Code: Alles auswählen

// Absender und Empfänger
 $mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
 $mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
Bin wohl doch blöde...
Der Arbeitstag war lange, gehe erst mal schlafen....
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Moin,

was ich gerade nicht verstehe ist, dass Du doch bereits mit dem ersten Skript "mailscript.php" letztendlich Erfolg hattest. Du hattest geschrieben, die Mails kommen alle an.

Warum verwendest Du jetzt das zweite Skript "mailscript2.php", das offensichtlich nun wieder einen Fehler beinhaltet, wenn doch das erste bereits erfolgreich lief? Was ist denn der Grund dafür?

Bitte schreibe den Grund für die Verwendung des zweiten Skripts nochmals ganz genau!

Verwende doch bitte auch nochmals das erste Skript "mailscript.php" das doch bereits funktioniert hatte, ich will sehen, ob das immer noch funktioniert.

Es scheint ja nun auch kein PHP-Syntaxfehler mehr zu sein sondern irgendetwas anderes, vielleicht etwas mit den Mailadressen, denn sonst würde das Skript ja nicht bis zur Fehlerseite von Dir durchlaufen.

Du müsstest auch nochmals beide Skripte hier in das Forum kopieren, damit ich diese mit einem Vergleichsprogramm vergleichen kann. Man kann ja PHP-Skripte online nicht einsehen.
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Hallo Tommy,
ich wollte doch nur mit einer Kopie des ganzen die Implementierung der Kopie der Mail an den Absender testen. Denn das war noch nicht drin. Das ist mir aber erst aufgefallen als mich die Geschäftsführung beim Testen darauf hingewiesen hat.
Das Originalformular kann ich zum testen nicht nehmen, da ich die Mail an die Geschäftsführung/Vorstand nicht einsehen kann.
Also musste ein zweites Formular mit Script herbei.
Ich habe gerade noch mal alles übertragen, jetzt funktioniert es auch.
Komischerweise hatte ich das gestern auch schon 2x gemacht und es hat nicht funktioniert.

Ich kann jetzt also an den Teil mit der Mailkopie an Absender.
Muss aber erst mal auf die Arbeit
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Moin,

also wenn alles funktioniert, dann musst Du auch hier nichts mehr zum Vergleichen rein stellen.

Wenn Du die Mails an Dich senden willst, dann brauchst Du doch lediglich Deine Mail-Adresse in der zweiten Eingabe an den Empfänger ändern. Dort kannst Du jede x-beliebige Mail-Adresse eintragen. Alles andere bleibt gleich:

Code: Alles auswählen

$mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
Die Kopie der E-Mail als "cc" ("Carbon Copy") geht dann auch an diesen, dort eingetragenen, Empfänger und auch als Kopie an den Absender, also auch an die im Formular eingetragene E-Mail-Adresse.
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Nein, ich meine eine Kopie des Formularinhaltes an die Mailadresse die vom Eintragenden dort verwendet wird.
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Ja - ich auch :)
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Hallo Tommy,
danke erst mal für deine Antwort, die ich aber nicht verstehe.
Wie soll der Code denn wissen, das eine Kopie der Mail an den Absender gehen soll, wenn ich da eine "x-beliebige" Adresse eintrage?
Die Adresse trägt doch der Absender in das Feld "Ihre Mail Adresse" ein. Und dahin soll eine Kopie.
Hier, wo ich deiner Meinung nach ändern soll, steht ja schon eine Adresse, aber die ist ja fest. Muss aber variable seine und die Quelle ist aus dem Formular

Code: Alles auswählen

 E-Mail: " . $_POST["email1"] . "
Da soll ich ändern:

Code: Alles auswählen

$mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
Verstehe ich nicht...
Grüssle
Detlev
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Volker »

Es steht eigentlich alles in meinem bereits geposteten Script ;)

Code: Alles auswählen

 // Absender und Empfänger setzen
    $mail->setFrom($email, $name);
    $mail->addAddress($empfaengerEmail, $empfaengerName);
// Der Absender erhält eine Kopie
$mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);


Das noch darunter rein was hier in rot steht, das wars.
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Mache es doch einfach mal so wie Volker und ich es geschrieben haben. So ist die Variable doch gesetzt als:

$email

Ich habe Dir weiter oben genau das Gleiche geschrieben wie Volker gerade eben, nur ein kleiner Unterschied. Ich verwende hier die POST-Variable "email1" aus Deinem Formular:

Das noch unten - unter dem Eintrag für "Absender und Empfänger" - hinzufügen. "addCC" ist eine Funktion:

Code: Alles auswählen

 // Der Absender bekommt eine Kopie
 $mail->addCC($_POST["email1"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email1"]);

 // "Antworten an" den Absender der Nachricht setzen
 $mail->addReplyTo($_POST["email1"], $_POST["name"]);
Bei Dir heißt die POST-Variable vom Feld "email1" (warum Du das so ändern musstest weiß ich nicht).

P.S.:

Volker hat da noch ein etwas anderes Skript generieren lassen. Bei dem werden weiter oben in etlichen Zeilen die POST-Variablen nochmals neu gesetzt (keine Ahnung wozu). Das wird gar nicht benötigt, das hat wohl die KI für Volker so geschrieben.

Bei mir - und meinem Originalskript von Werner Zenk, welches Du verwendest - benötigst Du lediglich diese beiden Zeilen für eine Kopie an den Absender und ein "Reply-To".
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Volker hat geschrieben: Sa 1. Mär 2025, 16:09 Es steht eigentlich alles in meinem bereits geposteten Script ;)

Code: Alles auswählen

 // Absender und Empfänger setzen
    $mail->setFrom($email, $name);
    $mail->addAddress($empfaengerEmail, $empfaengerName);
// Der Absender erhält eine Kopie
$mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);


Das noch darunter rein was hier in rot steht, das wars.
Das bekomme ich dann an Fehler:
Warning: Undefined variable $email in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 66 Warning: Cannot modify header information - headers already sent by (output started at /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php:66) in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 74

Der Code:

Code: Alles auswählen

<?php
/*
 * mailscript.php versenden über SMTP
 * Version vom 21.07.2021
 * 
 * Erfolgreich getestet mit: PHPMailer Version: 6.5.0
 */

// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require "PHPMailer-master/src/Exception.php";
require "PHPMailer-master/src/PHPMailer.php";
require "PHPMailer-master/src/SMTP.php";

// Danke und Fehlerseite
$dankeSeite = "danke.html"; // Danke - Seite, die Mail wurde erfolgreich versandt.
$fehlerSeite = "fehler.html"; // Fehler - Seite, falls die Mail nicht versandt werden konnte.

// Betreff
// Jede E-Mail benötigt einen Betreff, da jedoch im Formular kein
// entsprechendes Feld gesetzt wurde, wird ein fester Betreff hinzugefügt.
$betreffEmail = "Kontaktformular Homepage KTC";


// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {

  // Zeitzone und das aktuelle Datum setzen
  date_default_timezone_set("Europe/Berlin");
  $datum = date("d.m.Y H:i");

  // HTML-Tags entfernen
  $_POST = array_map('strip_tags', $_POST);

  // Inhalt der E-Mail setzen
  $inhaltEmail = "Gesendet am: $datum Uhr
   Vorname: " . $_POST["vorname"] . "
   Nachname: " . $_POST["nachname"] . "
   E-Mail: " . $_POST["email1"] . "
   Phone: " . $_POST["phone"] . "

   Nachricht: " . $_POST["textarea"] . "
  ";

  // Instanz und Zeichenkodierung setzen
  $mail = new PHPMailer();
  $mail->CharSet = "UTF-8";

  // Servereinstellungen
  $mail->isSMTP(); // Senden mit SMTP
  $mail->Host = "send.one.com"; // Postausgangsserver (SMTP)
  $mail->SMTPAuth = true; // SMTP-Authentifizierung aktivieren
  $mail->Username = "webmaster@kreuztalertanzclub-casino.de"; // SMTP Benutzername
  $mail->Password = "263307"; // SMTP Passwort
  $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Implizite TLS-Verschlüsselung aktivieren
  $mail->Port = 465; // Port - Postausgangsserver (SMTP)

 // Absender und Empfänger
 $mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
 $mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
 
 // Der Absender erhält eine Kopie
 $mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);

  // Betreff und Body setzen
  $mail->Subject = $betreffEmail;
  $mail->Body = $inhaltEmail;

 // E-Mail versenden
 if ($mail->Send()) {
  header("Location: " . $dankeSeite);
 }
 else {
  header("Location: " . $fehlerSeite);
 }
}
?>
Bin ich echt zu doof?
Grüssle
Detlev
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

Detlev,

lies doch bitte das, was ich gerade eben weiter oben geschrieben habe.

Volker verwendet ein anderes Skript als Du und ich.
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Volker »

Das spielt doch keine Rolle Tommy,

er muss dann eben

$email1

schreiben - ist doch logisch wenn die Variablen geändert werden

es heißt in allen Scripen eigentlich $email

// Der Absender erhält eine Kopie
$mail->addCC($email1); // Falls BCC gewünscht: $mail1->addBCC($email);
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7758
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von Tommy Herrmann »

ja oder so herum - das müsste ich jetzt nochmals genau nachgucken. Dein Skript ist anders, wir sollte da gleich bleiben.

Ich habe das alles haarklein in meinem Tutorial beschrieben:

https://www.mobirise-tutorials.com/Kontakt-Formular.php
Benutzeravatar
dettec61
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 255
Registriert: Di 30. Mär 2021, 09:41
Wohnort: Siegerland

Re: Kontaktformular mit Bestätigungsmail?

Beitrag von dettec61 »

Jetzt so gemacht wie du geschrieben hast Tommy:
Warning: Undefined array key "name" in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 69 Warning: Cannot modify header information - headers already sent by (output started at /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php:69) in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 77

Und ich hatte schon email1 ausgebessert /probiert. ging nicht.
Das war seit Anfang an da drin, das habe ich nicht auf email1 geändert...
Grüssle
Detlev
Antworten

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot], Amazon [Bot], Bing [Bot] und 4 Gäste