| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

16-02-2010, 19:56
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Suche Email Skript.
Moin,
ich brauche ein einfaches Skript, vllt könnt ihr mir ja helfen.
Ich will das Leute Ihre Email Adresse eingeben und das ihre Email Adresse in einer Datei oder am bessen das die an meine Email Adresse gesendet wird.
Danke schonmal
|

16-02-2010, 20:01
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
das klingt jetzt nicht besonders kompliziert. Wo klemmt es denn?
Inwiefern bist du mit HTML und PHP vertraut? Weißt du über Formulare bescheid und wie man die mit PHP verarbeitet? Wenn nicht: Formulare mit PHP verarbeiten.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

16-02-2010, 21:17
|
|
reeky
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 4
|
|
Also ich hab mal kurz langeweile gehabt.
Ich denke sowas hast du gebraucht.
Wenn du noch Fragen hast zu dem Quelltext, dann einfach stellen.
Code:
<?php
if ($_POST["absenden"] == "Senden") {
$newEmail = $_POST["newEmail"];
if (preg_match("/^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{2
,}(\.[a-zA-Z]{2,4}){1,2}$/", $newEmail)) {
//Hier noch deine Mail einfügen
$empfaenger = "deine@email.adresse";
$betreff = "Neue Emailadresse zugesandt...";
$from = "From: Server <email@email.com>";
$text = "Es wurde die neue Emailadresse gesendet: $newEmail";
mail($empfaenger, $betreff, $text, $from);
echo "Ihre Emailadresse wurde erfolgreich übertragen.";
} else {
echo "Sie haben keine gültige Emailadresse eingegeben!";
}
}
?>
<html>
<head>
<title>Emailformular</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<input type="text" value="adresse@domain.com" maxlength="50" name="newEmail" />
<input type="submit" name="absenden" value="Senden"/>
</form>
</body></html>
Geändert von reeky (19-02-2010 um 17:30 Uhr)
|

17-02-2010, 09:05
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Danke für eure schnellen Antworten.
Hab es erst selber ausprobiert und so:
einladund.html
HTML-Code:
<form action="email.php" method="POST">
<pre>
Email: <input type="TEXT" name="newEmail"> <br>
<input type="Submit" value="Abschicken">
<input type="Reset" value="Zurücksetzen">
</pre>
und email.php
PHP-Code:
<?php
$absender=$_POST["email"]; $empfaenger= "nedu@gmail.com"; $betreff= "Test"; $nachricht=$_POST["email"]; $sender="Fritz";
mail ($empfaenger, $betreff, $nachricht, "From: $sender <$absender>"); ?>
Dann kommt diese Fehlermeldung:
" Warning: mail() [ function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\email.php on line 10"
und bei deinem Vorschlag kommt:
"Warning: mail() [ function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\emailzwei.php on line 13
Ihre Emailadresse wurde erfolgreich übertragen. "
Geändert von SuperGoody (08-06-2011 um 16:49 Uhr)
|

17-02-2010, 09:10
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Die Fehlermeldung sagt es doch: Du musst deine php.ini anpassen, wenn du auf Windows arbeitest. Darin sind nochmal Kommentarzeilen, die dir weiterhelfen. Das schaffst du schon. Bitte Fehlermeldungen auch lesen und befolgen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

17-02-2010, 12:02
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Ja...aber ich weiss nicht was.
Hab jetzt Script von reeky auf ein Web server hochgeladen. (kilu.de) und jetzt die Meldung nicht mehr...aber eine email hab ichnicht bekommen!
|

17-02-2010, 12:21
|
|
reeky
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 4
|
|
Zitat:
Ja...aber ich weiss nicht was.
Hab jetzt Script von reeky auf ein Web server hochgeladen. (kilu.de) und jetzt die Meldung nicht mehr...aber eine email hab ichnicht bekommen!
|
Also wenn du das auf einen server bei dir aufm rechner getestest hast und du dort windows drauf hast, dann funktioniert das nicht und die fehlermeldung müsste normal sein.
Jetzt aufm server kann es sein, dass dein provider besondere einstellungen verwendet und du diese erst im script anpassen musst (port, usw.).
Kannst du auf deinem Webserver die php.ini verändern oder irgendwie die Anzeige der php Fehlermeldungen ändern?
Hier hab ich ne anleitung gefunden, wie die php.ini aussehen muss, falls du zugriff hast: PHP-Artikel: E-Mails versenden mit PHP - HTMLWorld
Ich hab gerade nochmal in dem forum von deinem provider nachgelesen. Scheinbar geht das versenden mit über den ihre server nicht so einfach.
ABER : ein benutzer hat ein script geschrieben, mit dem das versenden dennoch möglich sein soll.
Ich kann leider keine garantie oder erklärung geben, ich stell einfach mal das script hier rein. Ich hoffe du kommst damit klar.
Code:
<?php
// *****************************************************
// smtp mail Funktion for kilu user, by das Ass http://dasass.kilu.de/smtp.txt
// *****************************************************
$name = "Absendername"; // optional
$email = "Absender Mail-Adresse";
$smtphost = 'mail.gmx.net';
$smtpuser = 'Kundennummer';
$smtppass = 'Passwort';
$mailfrom = 'eigene Mail-Adresse';
if(strtoupper(substr(PHP_OS,0,3)=='WIN')) {
$eol="\r\n";
}
elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
$eol="\r";
}
else {
$eol="\n";
}
function mailserverparse( $socket, $response ) {
$server_response = null;
while( substr( $server_response, 3, 1 ) != ' ' )
if( !( $server_response = fgets( $socket, 256 ) ) )
trigger_error( 'can not get mail server response codes' );
if( !( substr( $server_response, 0, 3 ) == $response ) )
trigger_error( 'ran into problems sending mail. response: '.$server_response );
return true;
}
function sendmail( $to, $subject, $message, $headers ) {
global $smtphost, $smtpuser, $smtppass, $mailfrom, $eol;
if( !$socket = @fsockopen( $smtphost, 25, $errno, $errstr, 20 ) )
trigger_error( "Could not connect to smtp host: {$errno}:{$errstr}" );
if( trim( $subject ) == null )
trigger_error( 'no email Subject specified' );
$message = preg_replace( "#(?<!\r)\n#si", "\r\n", $message );
if( trim( $message ) == null )
trigger_error( 'message was blank' );
if( !preg_match( '#^from:#i', $headers ) && empty( $mailfrom ) )
trigger_error( 'no FROM header set' );
mailserverparse( $socket, '220' );
fputs( $socket, "HELO ".$smtphost.$eol );
mailserverparse( $socket, '250' );
if( !empty( $smtpuser ) && !empty( $smtppass ) ) {
fputs( $socket, "AUTH LOGIN".$eol );
mailserverparse($socket, '334' );
fputs( $socket, base64_encode( $smtpuser ).$eol );
mailserverparse($socket, '334' );
fputs( $socket, base64_encode( $smtppass ).$eol );
mailserverparse( $socket, '235' );
}
if( $headers != null ) {
$headers = rtrim( $headers );
$headers = preg_replace( '#(?<!\r)\n#si', $eol, $headers );
$header_array = explode( $eol, $headers );
$headers = null;
$cc = null;
$bcc = null;
foreach( $header_array as $header ) {
if ( preg_match( '#^cc:#si', $header ) )
$cc = preg_replace('#^cc:(.*)#si', '\1', $header);
elseif( preg_match( '#^bcc:#si', $header ) ) {
$bcc = preg_replace('#^bcc:(.*)#si', '\1', $header);
$header = null;
}
$headers .= ( $header != null )?$header.$eol:null;
}
$headers = rtrim( $headers );
$cc = explode( ', ', $cc );
$bcc = explode( ', ', $bcc );
}
fputs( $socket, "MAIL FROM: <".$mailfrom.">".$eol );
mailserverparse( $socket, '250' );
$to = empty( $to )?'Undisclosed-recipients:;':trim( $to );
if( preg_match( '#[^ ]+\@[^ ]+#', $to ) ) {
fputs( $socket, "RCPT TO: ".$to.$eol );
mailserverparse( $socket, '250' );
}
if( is_array( $bcc ) )
foreach( $bcc as $address ) {
$address = trim( $address );
if( preg_match( '#[^ ]+\@[^ ]+#', $address ) ) {
fputs( $socket, "RCPT TO: ".$address.$eol );
mailserverparse( $socket, '250' );
}
}
if( is_array( $cc ) )
foreach( $cc as $address ) {
$address = trim( $address );
if( preg_match( '#[^ ]+\@[^ ]+#', $address ) ) {
fputs( $socket, "RCPT TO: ".$address.$eol );
mailserverparse( $socket, '250' );
}
}
fputs( $socket, "DATA".$eol );
mailserverparse( $socket, '354' );
fputs( $socket, "Subject: ".$subject.$eol );
fputs( $socket, "To: ".$to.$eol );
fputs( $socket, $headers.$eol.$eol );
fputs( $socket, $message.$eol );
fputs( $socket, ".".$eol );
mailserverparse( $socket, '250' );
fputs( $socket, "QUIT".$eol );
fclose( $socket );
return true;
}
// Funktionsaufruf zum Senden
$headers ="From: ".(($name)?$name:"Absender")." <".$email.">".$eol;
sendmail( $mailfrom, $subject, $comment, $headers );
?>
Geändert von reeky (19-02-2010 um 17:35 Uhr)
|

17-02-2010, 20:41
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Danke für deine Bemühungen 
Mir ist aber nicht so klar was ich angeben muss ?!
Der Smtp host von Hotmail ist doch "pop3.live.com", bin mir da nicht so sicher.
PHP-Code:
$name = "Absendername"; // optional $email = "Absender Mail-Adresse"; $smtphost = 'mail.gmx.net'; $smtpuser = 'Kundennummer'; $smtppass = 'Passwort'; $mailfrom = 'eigene Mail-Adresse';
Bisher hat das Script nur mein FireFox zum absturz gebracht
Geändert von SuperGoody (17-02-2010 um 20:43 Uhr)
|

17-02-2010, 21:01
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Wenn kilu.de kein eigenes sendmail anbietet, solltest du vielleicht einfach einen anderen Provider nehmen, denn normalerweise geht es auf praktisch jedem gängigen PHP-Webspace einfach mit mail().
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-02-2010, 09:10
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
So es hat geklappt, es lag an dem Webhoster
Jetzt hab ich das nächste problem. Hab jetzt eine Seite mit Html und CSS gemacht und ich bekomm die Ausgabe nicht hin. Ganz oben steht immer ein Teil von PHP Script
PHP-Code:
"; $text = "Es wurde die neue Emailadresse gesendet: $newEmail"; mail($empfaenger, $betreff, $text, $from); echo "Ihre Emailadresse wurde erfolgreich übertragen."; } else { echo "Sie haben keine gültige Emailadresse eingegeben!"; } } ?>
und wenn ich versuche was zu los zu schicken kommt eine Fehlermeldung (Objekt nicht gefunden).
Weiss einer wo es erklärt wird, wie man PHP in die Hompage einbindet. Bin mir nicht so sicher mit dem CSS
Vielen dank für die ganzen Antworten
Geändert von SuperGoody (19-02-2010 um 09:13 Uhr)
|

19-02-2010, 10:59
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
wo siehst du dir diese Seite denn jetzt an? Etwa lokal im Browser, ohne Server dazwischen?
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-02-2010, 14:24
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Zitat:
Zitat von AmicaNoctis
Hallo,
wo siehst du dir diese Seite denn jetzt an? Etwa lokal im Browser, ohne Server dazwischen?
Gruß,
Amica
|
Im Lokalen Netz und auf einem Server und bei beiden das selbe.
Nur das im Lokalen Netz die Fehlermeldung "Zugriff verweigert" steht, wenn ich auf Senden klicke.
|

19-02-2010, 14:27
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von SuperGoody
Im Lokalen Netz und auf einem Server und bei beiden das selbe.
|
Dann läuft auf dem Server kein PHP oder du benutzt eine falsche Dateinamenserweiterung.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-02-2010, 14:33
|
|
SuperGoody
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 10
|
|
Wenn ich das PHP Script so auf den Server laufen lasse, geht es ja. Also muss ja PHP an sein.
|

19-02-2010, 15:16
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Oder der Webserver darf die Datei nicht lesen/ausführen.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|