PHP Mail versenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anmeldung
bedingung
betreff
code
einladung
email
fehler
funktion
header
http
info
karpfen
mache
nachricht
team
url
versenden
verwenden
zeile
-
Hi !
Ich arbeite gerade an einer Seite.
Jetzt möchte ich gerne, dass User andere User per eMail einladen können.
Also dass ein User im Loginbereich auf Einladen klickt, und dass der dann die eMail Adresse des anderen eingibt, und dann eine Mail versendet wird.
Wie mache ich das?
Geht das hier auf Lima überhaupt? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Im Prinzip kannst du dafür die Funktion mail() von PHP verwenden. Allerdings spinnt diese auf lima gerne mal rum, weswegen es sinnvoller ist eine SMTP-Class wie diese hier zu verwenden. Aber in beiden Fällen kannst du Mails versenden.
-
tct schrieb:
Im Prinzip kannst du dafür die Funktion mail() von PHP verwenden. Allerdings spinnt diese auf lima gerne mal rum, weswegen es sinnvoller ist eine SMTP-Class wie diese hier zu verwenden. Aber in beiden Fällen kannst du Mails versenden.
Ich habe mir jetzt folgendes Script zusammengebastelt:
$empfaenger = '<php echo $email ?>'; $betreff = 'Einladung'; $nachricht = 'Hallo <php echo $vname ?> <php echo $nname ?>'; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); ?>
Stimmt das soweit?
Und wie kann ich "Nachricht erfolgreich gesendet" nach erfolgreichem Versand anzeigen lassen? -
Abend,
Das kannst du eigentlich gar nicht darstellen lassen, da du nicht überprüfen kannst ob die Mail schon über den SMTP ist.
Zumindest nicht über mail(),
Du kannst aber einfach noch nen tool einbauen, welches überprüft ob die mail-adresse den richtigen aufbau hat, also ein @ keine leerzeichen und so.
Außerdem kann man über fsockopen() zumindest den host prüfen, z.B. ob googlemail.com existiert.
Ham auch mal gelesen, dass man darüber Mailadressen prüfen kann, weiß aber nicht mehr genau wie.
Da kannst du mal google benutzen.
Sonst würde ich mal davon ausgehen, dass die Mailadresse echt war und einach das hier in den code einbaue:
echo 'Die Einladung wurde erfolgrich verschickt, jetzt nur noch hoffen ob der Empfänger schnell seine Mails anguckt.';
lg
Oleander
Beitrag zuletzt geändert: 13.2.2009 22:35:07 von olearose -
olearose schrieb:
Abend,
Das kannst du eigentlich gar nicht darstellen lassen, da du nicht überprüfen kannst ob die Mil echt ist.
Zumindest nicht über mail(),
Du kannst aber einfach noch nen tool einbauen, welches überprüft ob die mail-adresse den richtigen aufbau hat, also ein @ keine leerzeichen und so.
Außerdem kann man über fsockopen() zumindest den host prüfen, z.B. ob googlemail.com existiert.
Ham auch mal gelesen, dass man darüber Mailadressen prüfen kann, weiß aber nicht mehr genau wie.
Da kannst du mal google benutzen.
Sonst würde ich mal davon ausgehen, dass die Mailadresse echt war und einach das hier in den code einbaue:
echo 'Die Einladung wurde erfolgrich verschickt, jetzt nur noch hoffen ob der Empfänger schnell seine Mails anguckt.';
lg
Oleander
Ok, aber stimmt denn mein Skript? -
Abend.
Nicht ganz, hab dir die Stellen mal makiert.
Hier fehlt nen <?php
$empfaenger = '<php echo $email ?>';
Wird nen Error geben, mach es ohne <php echo und ?>, $empfaenger = $email';
kannst du dir aber auch einfach sparen, gib einfach unten stadt $empfaender $mail an.
$nachricht = 'Hallo <php echo $vname ?> <php echo $nname ?>';
Wieder das selbe, ohne <php echo und ?> nname wird wohl name heißen sollen :)
Achso, damit die variablen immer erkannt werden, mach aus den beiden ' ein".
'From: webmaster@example.com' . "\r\n" .
geht glaube auf lima-city nicht.
'X-Mailer: PHP/' . phpversion();
Kannste weglassen, machste nur für das super tolle php werbung :)
mail($empfaenger, $betreff, $nachricht, $header);
Wie gesagt, hier ambesten statt $empfänger $email.
lg
Oleander
Beitrag zuletzt geändert: 13.2.2009 22:43:08 von olearose -
schueler-forum schrieb:
Ich habe mir jetzt folgendes Script zusammengebastelt:
$empfaenger = '<php echo $email ?>'; $betreff = 'Einladung'; $nachricht = 'Hallo <php echo $vname ?> <php echo $nname ?>'; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); ?>
Stimmt das soweit?
Teilweise, damit das ganze geparst wird, muss der ganze PHP-Teil zwischen <?php und ?>. Es sollte also so sein:
<?php $empfaenger = $email; $betreff = 'Einladung'; $nachricht = 'Hallo '.$vname.' '.$nname; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); ?>
Und wie kann ich "Nachricht erfolgreich gesendet" nach erfolgreichem Versand anzeigen lassen?
Ja das geht, allerdings wir dadurch nur Überprüft, ob die E-Mail versandt wurde, nicht ob sie auch wirklich ankommt.
Dazu kannst du dir die PHP-Referenz zur Mail-Funktion ansehen. Dort steht das der Rückgabewert true oder false ist, das heißt du kannst ganz einfach mit einer if-Abfrage überprüfen, ob die E-Mail zum versandt angenommen wurde.
bsp.:
<?php if(mail($empfaenger, $betreff, $nachricht, $header)) { echo("E-Mail versandt"); }else{ echo("Fehler beim E-Mail versandt!"); } ?>
-
Danke für die Antworten !
Mein Script sieht jetzt so aus:
<?php $email = $_POST['email']; $vname = $_POST['vname']; $nname = $_POST['nname']; $empfaenger = $email; $betreff = 'Einladung'; $nachricht = 'Hallo '.$vname.' '.$nname; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); if(mail($empfaenger, $betreff, $nachricht, $header)) { echo("E-Mail versandt"); }else{ echo("Fehler beim E-Mail versandt!"); } ?>
Klappt auch alles mit Email Versand, nur wird die email 2x versendet. Wie behebe ich den Fehler? -
Du verschickst die E-Mail in der if-Bedingung wahrscheinlich auch nochmal
-
karpfen schrieb:
Du verschickst die E-Mail in der if-Bedingung wahrscheinlich auch nochmal
Aha, und wie behebe ich das? -
Die Zeile über der if auskommentieren und ausprobieren, ob die E-Mail verschickt wird!
-
karpfen schrieb:
Die Zeile über der if auskommentieren und ausprobieren, ob die E-Mail verschickt wird!
Was meinst du mit auskommentieren? -
<? //mail($empfaenger, $betreff, $nachricht, $header); ?>
Setz die beiden Schrägstriche davor.
Dann wird der Code nicht ausgeführt, welcher in der Zeile steht. -
karpfen schrieb:
<? //mail($empfaenger, $betreff, $nachricht, $header); ?>
Setz die beiden Schrägstriche davor.
Dann wird der Code nicht ausgeführt, welcher in der Zeile steht.
Wenn ich das mache, kommt nur ein Fehler -
chathc schrieb:
karpfen schrieb:
<? //mail($empfaenger, $betreff, $nachricht, $header); ?>
Setz die beiden Schrägstriche davor.
Dann wird der Code nicht ausgeführt, welcher in der Zeile steht.
Wenn ich das mache, kommt nur ein Fehler
Wäre das zuviel verlangt, wenn du schon einen Fehler erwähnst, diesen auch zu nennen, damit ich meine Glaskugel nicht aus dem Schrank holen muss? -
Sorry
So sieht mein Skript aus:
<?php $email = $_POST['email']; $vname = $_POST['vname']; $nname = $_POST['nname']; $empfaenger = $email; $betreff = 'Einladung'; $nachricht = 'Hallo '.$vname.' '.$nname; $header = 'From: info@schuelersv.eu' . "\r\n" . 'Reply-To: info@schuelersv.eu' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); // if(mail($empfaenger, $betreff, $nachricht, $header)) { echo("E-Mail erfolgreich versandt"); }else{ echo("Fehler beim E-Mail Versand!"); } ?>
Und das ist der Fehler:
Parse error: syntax error, unexpected '}' in /home/webpages/lima-city/chathc/html/83859358934798/emaileinladen.php on line 111
karpfen schrieb:
chathc schrieb:
karpfen schrieb:
<? //mail($empfaenger, $betreff, $nachricht, $header); ?>
Setz die beiden Schrägstriche davor.
Dann wird der Code nicht ausgeführt, welcher in der Zeile steht.
Wenn ich das mache, kommt nur ein Fehler
Wäre das zuviel verlangt, wenn du schon einen Fehler erwähnst, diesen auch zu nennen, damit ich meine Glaskugel nicht aus dem Schrank holen muss?
-
Du hast die FALSCHE Zeile auskommentiert.
Ich meinte die Zeile darüber, in der du die Mail verschickst.
Die if-Bedingung soll drin bleiben. -
karpfen schrieb:
Du hast die FALSCHE Zeile auskommentiert.
Ich meinte die Zeile darüber, in der du die Mail verschickst.
Die if-Bedingung soll drin bleiben.
Vielen Dank ! Jetzt klappt es ! -
Jetzt möchte ich gerne noch mehrere Zeilen in der Nachricht.
Wie mache ich das?
Ich habe es schon probiert, aber habs nicht hinbekommen -
http://www.infos24.de/phpe/handbuch/23_php_mail.htm
Einfach mal nacheinander durchlesen.
Beitrag zuletzt geändert: 14.2.2009 19:14:44 von karpfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage